Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 处理视频标签中的空流_C#_Jquery_Html_Wcf - Fatal编程技术网

C# 处理视频标签中的空流

C# 处理视频标签中的空流,c#,jquery,html,wcf,C#,Jquery,Html,Wcf,我有以下html代码: <video width="426" height="240" controls="" preload="auto" autoplay=""> <source src="http://localhost:8081/VideoStream"> Your browser does not support HTML5 video </video> 代码正在工作,但我想知道,在html中,我收到了Stream.Null,这样我

我有以下html代码:

<video width="426" height="240" controls="" preload="auto" autoplay="">
    <source src="http://localhost:8081/VideoStream">
    Your browser does not support HTML5 video
</video>
代码正在工作,但我想知道,在html中,我收到了
Stream.Null
,这样我就可以显示错误消息,而不是不渲染任何内容的视频播放器


你能给我一些提示吗?

作为
流。Null
只返回一个新的
NullStream
,这是一个长度为0位的有效流。你只能检查流是否为空

在javascript中,您可以检查视频标记的值是否等于
0
。你可以在活动中这样做


var视频=$(''+
'' +
'您的浏览器不支持HTML5视频'+
'');
video.on('loadedmetadata',函数(evt){
if(evt.target.duration==0){
log(“视频为空”);
}否则{
log(“视频有内容”);
}
});
video.on('error',函数(evt){
console.log(“无法播放视频”);
});
$(document.body).append(视频);
加载指定视频的元数据时发生loadedmetadata事件。视频元数据包括:持续时间、维度和文本轨迹


As
Stream.Null
只返回一个新的
NullStream
,它是一个长度为0位的有效流,您只能检查流是否为空

在javascript中,您可以检查视频标记的值是否等于
0
。你可以在活动中这样做


var视频=$(''+
'' +
'您的浏览器不支持HTML5视频'+
'');
video.on('loadedmetadata',函数(evt){
if(evt.target.duration==0){
log(“视频为空”);
}否则{
log(“视频有内容”);
}
});
video.on('error',函数(evt){
console.log(“无法播放视频”);
});
$(document.body).append(视频);
加载指定视频的元数据时发生loadedmetadata事件。视频元数据包括:持续时间、维度和文本轨迹


我想知道在html中我收到了一个空流。我想知道在html中我收到了一个空流。出于某种原因,事件不会触发。我的视频元素是通过数字方式添加的,因此我使用了以下代码:$(document).on('loadedmetadata','video',function(evt)@Lucian这不起作用。像这样,你在
文档
上注册
loadedmetadata
事件。你需要按照我在回答中所描述的那样做。另外,如果你动态添加你的视频,它将不会触发。如果我用单击更改loadedmetadata,它将触发work@Lucian我已经编辑了我的答案,以显示它如何与动态添加的视频。请注意,事件是在元素添加到html之前注册的。@Lucian如果您使用click事件,您必须始终
单击
来触发该行为。对于
loadedmetadata
事件,它将自动发生,因为某些原因,事件不会触发。我的视频元素是自动添加的,因此我使用了以下方法代码:$(文档).on('loadedmetadata','video',函数(evt)@Lucian这不起作用。像这样,你在
文档
上注册
loadedmetadata
事件。你需要按照我在回答中所描述的那样做。另外,如果你动态添加你的视频,它将不会触发。如果我用单击更改loadedmetadata,它将触发work@Lucian我已经编辑了我的答案,以显示它如何与动态添加的视频。请注意,事件是在元素添加到html之前注册的。@Lucian如果使用“单击”事件,则必须始终
单击
以触发该行为。使用
loadedmetadata
事件,它将自动发生
public Stream VideoStream()
{
   try
   {
         return File.OpenRead(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "video.ogg"));
   }catch(Exception)
   {
     return Stream.Null;
   }
}
<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>