我有一个播放广播电台的 HTML5 音频流的网络应用程序。我正在使用 jQuery 播放/暂停音频并像这样切换播放/暂停按钮:
var playerStream = document.getElementById('player-stream');
$('section.player').hammer().on('tap','button.toggle-stream', function(event){
if (playerStream.paused) {
playerStream.play();
$('button.toggle-stream').attr('data-icon','s');
}
else {
playerStream.pause();
$('button.toggle-stream').attr('data-icon','p');
}
});
这一切都很好。但是,在 iPhone 和 iPad 等设备上,您可以控制从网页外部播放的音频(例如双击主屏幕并单击播放/暂停)。假设音频正在播放,我决定从应用程序外部暂停流。当我返回到实际的网络应用程序时,“暂停”按钮仍然显示并且实际上什么都不做,直到您点击它两次以恢复流。真正应该发生的是暂停按钮返回“播放”,所以这似乎是一件很自然的事情。
如何检测音频播放/暂停状态的变化并将其反映回应用程序?