我有一个HTML5 <video>
元素,其来源为.m3u8
(HLS stream)
我有一个M3U8有三种不同的演绎:640x360
,960x540
和1280x720
在桌面上我有一个用于播放视频的Flash Player,因此HTML5后备仅适用于移动设备(iOS和Android) - 我正在iPad上进行所有测试,一旦它正在工作,我会在Android上尝试一下,并希望一切都是一样的。
我的目标是,在任何时候,弄清楚视频元素正在播放的内容。当用户的带宽发生变化时,再现可能会发生变化。
我尝试使用.videoHeight
属性,但无论下载的是什么,它总是返回480 - 这特别奇怪,因为480甚至不是一个选项。
有谁知道如何弄清楚正在下载的节目?
答案 0 :(得分:1)
清理一些从未收到答案的旧问题:
不幸的是,这个是不可能的。大多数浏览器中的HTMl5视频规范和HTML5视频实现旨在消除播放视频所涉及的潜在魔力的所有。你给它一个来源,它播放。其他一切都是完全隐藏的,你无法访问。无法访问元数据通道,无法访问音频通道,无法访问比特率和分辨率信息,......
充其量我开发了猜测解决方案正在播放的解决方案。每隔10秒,通过AJAX加载1 MB文件。我测量了下载速度,以猜测它们当前的带宽。我知道如果你有两倍的所需带宽,QuickTime只会播放。因此,如果960x540
再现需要1400 kbit / s,那么除非你的带宽为2800 kbit / s,否则它不会播放。
它不是很好(每分钟浪费6 MB的带宽),但它总比没有好。