【发布时间】:2016-09-01 14:34:27
【问题描述】:
我正在开发一个在线广播网站,并试图检测音频播放器当前对用户的状态。
我当前的设置在知道这一点时通常是错误的,如果我在 iOS 上并且我从锁屏播放器暂停,它仍然会认为它正在播放,因为我从未点击过 html 暂停按钮。
最后,如何检测我的流何时完全结束。我试过:onstalled=""、onwaiting=""、onerror=""、onended=""。但它们都不是 100% 工作的。最接近工作的是:onstalled="",但即使这样也只有 60% 左右的成功率(有时当我加载网站时它会告诉我它已经结束)。
HTML:
<audio autoplay="" id="player" title="" oncanplay="radioLoaded()">
<source src="...">
</audio>
Javascript:
function radioLoaded() {
if (player.paused) {
document.getElementById('radioplaypause').innerHTML = varRadioResume;
} else if (player.play) {
document.getElementById('radioplaypause').innerHTML = varRadioPause;
} else {
document.getElementById('radioplaypause').innerHTML = varRadioLoading;
}
window.player = document.getElementById('player');
document.getElementById('radioplaypause').onclick = function () {
if (player.paused) {
player.play();
this.innerHTML = varRadioPause;
} else {
player.pause();
this.innerHTML = varRadioResume;
}
}
};
function radioEnded() {
document.getElementById('radiolivetext').innerHTML = 'OFFLINE';
document.getElementById('radioplayer').style.display = 'none';
document.getElementById('radioinformation').style.display = 'none';
};
【问题讨论】:
-
你能澄清一下你所说的“结束”是什么意思吗?当音频由于连接速度慢或用户单击“暂停/停止”按钮或其他东西而正在缓冲时,它只是随机停止吗?
-
当我的收音机在晚上结束时。当我不再向网站发送/上传数据时。
标签: javascript html html5-audio audio-streaming