在数据连接中检测移动 chrome 上 HTML 音频的 canplaythrough
Posted
技术标签:
【中文标题】在数据连接中检测移动 chrome 上 HTML 音频的 canplaythrough【英文标题】:Detect canplaythrough of HTML Audio on mobile chrome when in Data connection 【发布时间】:2016-07-13 15:54:25 【问题描述】:我创建了一个使用音频文件作为音效和背景音乐的小型网络应用程序,我注意到当我在 Wifi 连接下的 chrome 上运行它时,它运行良好,但是当我切换到数据时,某些事件不会触发完全及时......他们最终会开火,但在一些交互或调用“播放”方法之后。
let v = new Audio();
v.preload = "auto";
v.src = "some mp3 file";
我看过的事件
loadstart
suspend
durationchanged
loadedmetadata
loadeddata
canplay
canplaythrough
在 Wifi 上,它们会按顺序立即触发
然而,在数据连接上,前两个启动,然后什么都没有发生,直到我在路上调用“play”。之后,触发了正常事件,除了我注意到 stalled 仅在 Data 上触发。
这是预期的行为吗?
我的问题是,在移动数据连接中如何检测“canplaythrough”或“canplay”甚至“loadeddata”?
【问题讨论】:
【参考方案1】:显然,android 在连接到数据时会阻止音乐和视频的自动播放。 canplaythrough 需要预加载音频或至少要在 Data 上阻止的元数据。
【讨论】:
如果仅加载元数据,canplaythrough
不会触发。来自 MDN:canplaythrough
事件在用户代理可以播放媒体时触发,并估计已加载足够的数据以播放媒体直至其结束,而无需停止进一步缓冲内容。
这个问题很老了,我不知道它是否改变了,但是如果你的手机在数据上,即使是巫术也无法让它在加载时播放。以上是关于在数据连接中检测移动 chrome 上 HTML 音频的 canplaythrough的主要内容,如果未能解决你的问题,请参考以下文章