有没有办法找出所应用的SRC到视频元素是否包含音频,视频或两者兼而有之?我正在将它用于媒体播放器,但想要确定何时应该可以看到视频元素,或者何时应该显示音频频谱。 (顺便说一句,我想在javascript中实现这一点)
答案 0 :(得分:1)
您可以在videoWidth
事件触发后检查视频元素的videoHeight
/ onloadedmetadata
属性。如果它等于0
,则它没有视频轨道。
Webkit还支持webkitVideoDecodedByteCount
和webkitAudioDecodedByteCount
属性,但这对其他浏览器没有帮助。
当然,您总是通过检查src的扩展名来查询文件类型:
答案 1 :(得分:1)
正如TimHayes所说,您可以检查文件扩展名,但这并不总能帮到您。你可能有.ogg,这是不明确的,或者URL可能指向一些不公开文件扩展名的服务器端脚本。
如果有疑问,<video>
元素将播放其中之一,因此您可以使用它。然后在videoWidth
触发后检查loadedmetadata
(或.readyState > 0
,如果在附加事件侦听器之前加载元数据,则检查。)
如果您发现没有视频轨道,则您需要隐藏或至少缩小视频元素。如果您编写自己的控件以使它们看起来并不奇怪,那可能是最好的。