当我在HTML5中构建一个简单的音频流元素时出现的一个值得注意的问题是,该<audio>
标签的行为与播放和暂停实时音频流的预期不同。
我正在使用最基本的HTML5代码来流式传输音频,<audio>
带有控件的标签,其来源是实时流。
当前结果:首次播放流时,它将按预期播放任何流。但是,当暂停并再次播放时,音频将恢复到先前暂停流时停止播放的位置。用户现在正在收听流的延迟版本。这种情况不是特定于浏览器的。
期望的结果:当流暂停时,我希望流停止。再次播放时,我希望它恢复流当前所在的位置,而不是用户暂停流时的位置。
有人知道暂停后可以正确恢复该音频流的方法吗?
我为解决此问题而进行的尝试失败:
currentTime
音频元素的不会对流音频产生任何影响。停止流然后重新启动的最佳方法似乎是删除源,然后调用load:
var sourceElement = document.querySelector("source");
var originalSourceUrl = sourceElement.getAttribute("src");
var audioElement = document.querySelector("audio");
function pause() {
sourceElement.setAttribute("src", "");
audioElement.pause();
// settimeout, otherwise pause event is not raised normally
setTimeout(function () {
audioElement.load(); // This stops the stream from downloading
});
}
function play() {
if (!sourceElement.getAttribute("src")) {
sourceElement.setAttribute("src", originalSourceUrl);
audioElement.load(); // This restarts the stream download
}
audioElement.play();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句