Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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
Javascript 获取HTML5视频标签的当前播放类型_Javascript_Html_Html5 Video - Fatal编程技术网

Javascript 获取HTML5视频标签的当前播放类型

Javascript 获取HTML5视频标签的当前播放类型,javascript,html,html5-video,Javascript,Html,Html5 Video,有没有办法找出应用于视频元素的SRC是否包含音频、视频或两者?我将其用于媒体播放器,但希望确定视频元素何时可见,或音频频谱何时显示。 (顺便说一句,我想用javascript实现这一点)您可以在触发onloadedmetadata事件后检查视频元素的videoWidth/videoHeight属性。如果它等于0,则它没有视频曲目 Webkit还支持webkitVideoDecodedByteCount和webkitAudioDecodedByteCount属性,但这对其他浏览器没有帮助 当然,您

有没有办法找出应用于视频元素的SRC是否包含音频、视频或两者?我将其用于媒体播放器,但希望确定视频元素何时可见,或音频频谱何时显示。
(顺便说一句,我想用javascript实现这一点)

您可以在触发
onloadedmetadata
事件后检查视频元素的
videoWidth
/
videoHeight
属性。如果它等于
0
,则它没有视频曲目

Webkit还支持
webkitVideoDecodedByteCount
webkitAudioDecodedByteCount
属性,但这对其他浏览器没有帮助

当然,您总是通过检查src的扩展名来查询文件类型:

  • 如果(mp3 | oga |等)->仅假设音频
  • 如果(mp4 | ogv | webm |等)->假设视频

正如TimHayes所说,您可以检查文件扩展名,但这并不总是对您有帮助。您可以使用不明确的.ogg,或者URL可能指向某个不公开文件扩展名的服务器端脚本

当有疑问时,
元素将播放其中一个,因此您可以直接使用它。然后在触发
loadedmetadata
后检查
videoWidth
(或者如果
.readyState>0
,则在附加事件侦听器之前加载元数据)


如果您发现没有视频曲目,则需要隐藏或至少收缩视频元素。最好是编写自己的控件,这样它们就不会看起来很奇怪。

关于扩展名,这是我第一次这么做的,但这对此类文件不起作用。我已经有了控制装置,只是把一切都藏起来了