我正在开发一个使用 jQuery 和 SoundManager 构建的 HTML5 音频播放器。
到目前为止,我们无法确定是否有办法在移动 Safari 中检测音频中断事件(例如拔下耳机)。现在,即使 iOS 已暂停播放器中的任何音频播放,我们仍会遇到播放器处于“正在播放”状态。
我正在开发一个使用 jQuery 和 SoundManager 构建的 HTML5 音频播放器。
到目前为止,我们无法确定是否有办法在移动 Safari 中检测音频中断事件(例如拔下耳机)。现在,即使 iOS 已暂停播放器中的任何音频播放,我们仍会遇到播放器处于“正在播放”状态。
我现在在使用 WebRTC 的网页上遇到了类似的问题。我发现如果你有一个AudioContext
对象,你可以监听它的statechange
事件。在拔下耳机时,上下文状态变为suspended
。
https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/onstatechange
您是否尝试过轮询属性 object.position(SM2 对象)或 object.currentTime(音频对象)甚至属性 object.paused?您可以确保每次轮询时 position/currentTime 都会增加 - 如果不采取行动。