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

时间:2014-01-22 19:52:10

标签: javascript html5 html5-video

有没有办法找出所应用的SRC到视频元素是否包含音频,视频或两者兼而有之?我正在将它用于媒体播放器,但想要确定何时应该可以看到视频元素,或者何时应该显示音频频谱。 (顺便说一句,我想在javascript中实现这一点)

2 个答案:

答案 0 :(得分:1)

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

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

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

  • if(mp3 | oga | etc) - >仅假设音频
  • if(mp4 | ogv | webm | etc) - >假设视频

答案 1 :(得分:1)

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

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

如果您发现没有视频轨道,则您需要隐藏或至少缩小视频元素。如果您编写自己的控件以使它们看起来并不奇怪,那可能是最好的。