首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >处理视频标签中的空流

处理视频标签中的空流
EN

Stack Overflow用户
提问于 2017-06-19 16:42:56
回答 1查看 616关注 0票数 1

我有以下html代码:

代码语言:javascript
运行
复制
<video width="426" height="240" controls="" preload="auto" autoplay="">
    <source src="http://localhost:8081/VideoStream">
    Your browser does not support HTML5 video
</video>

在C#服务器部分中,我有以下代码:

代码语言:javascript
运行
复制
public Stream VideoStream()
{
   try
   {
         return File.OpenRead(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "video.ogg"));
   }catch(Exception)
   {
     return Stream.Null;
   }
}

代码运行正常,但我想知道在html中我收到了那个Stream.Null,这样我就可以显示一条错误消息,而不是不渲染任何内容的视频播放器。

你能给我一些提示吗?我怎样才能做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2017-06-19 16:59:59

由于Stream.Null只返回一个新的NullStream,它是一个长度为0字节的有效流,因此您只能检查该流是否为空。

在javascript中,你可以检查视频标签的duration值是否等于0。您可以在loadedmetadata事件中执行此操作。

代码语言:javascript
运行
复制
<script>
    var video = $('<video width="426" height="240" controls="" preload="auto" autoplay="">' + 
                      '<source src="http://localhost:8081/VideoStream">' +
                      'Your browser does not support HTML5 video' +
                  '</video>');

    video.on('loadedmetadata', function(evt) {
        if(evt.target.duration === 0) {
            console.log("The video is empty");
        } else {
            console.log("The video has content");
        }
    });
    video.on('error', function(evt) {
        console.log("The video cannot be played");
    });

    $(document.body).append(video);
</script>

当指定视频的元数据已经加载时,会发生loadedmetadata事件。视频的元数据包括:持续时间、维度和文本轨道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44625889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档