【发布时间】:2015-01-31 05:11:10
【问题描述】:
当我在 HTML5 中构建一个简单的音频流元素时出现的一个值得注意的问题是,<audio> 标记在播放和暂停实时音频流方面的行为与预期不同。
我正在使用最基本的 HTML5 代码来流式传输音频,带有控件的 <audio> 标记,其来源是实时流。
当前结果:第一次播放流时,它会按预期播放任何正在播放的内容。但是,当它暂停并再次播放时,音频会在流之前暂停时完全恢复到它停止的位置。用户现在正在收听流的延迟版本。这种情况并非特定于浏览器。
期望的结果:当直播暂停时,我希望直播停止。再次播放时,我希望它恢复流当前所在的位置,而不是用户暂停流时的位置。
有没有人知道如何让这个音频流在暂停后正确恢复?
我为解决此问题所做的一些失败尝试:
- 更改音频元素的
currentTime对流式音频没有任何作用。 - 当用户停止流播放时,我从 DOM 中删除了音频元素,并在用户恢复播放时将其重新添加。流仍然在用户停止的地方继续,更糟糕的是还在幕后下载了流的另一个副本。
- 每次播放流时,我都会在流 URL 的末尾添加一个随机 GET 变量,以试图欺骗浏览器,使其相信它正在播放一个新流。播放仍会从用户暂停流的位置继续。
【问题讨论】:
标签: html audio html5-audio audio-streaming