以下是该方案:
我正在使用Nicecast(在OS X上)编码MP3流(来自麦克风输入),并将其发送到运行Icecast2流媒体服务器的Ubuntu计算机。流媒体服务器通过Wi-Fi路由器连接到我的LAN(而不是互联网)。通过以下方式收听流:iOS设备,Android设备,Windows电话,Windows计算机,Mac计算机等(大多数使用VLC)。
从麦克风拾音器到通过客户端扬声器播放的音频的延迟大约 1-2秒。这对我的申请来说没问题。
但是,当网络拥塞(或客户端的CPU忙于执行其他操作或任何原因)时,流停止(中断)几秒钟,然后当所有内容恢复为&时#34;正常",Icecast发送大量数据以便再次实时恢复。客户端的缓冲区接收到这一数据并存储它(应该如此)并在它停止的地方再次开始播放(这也很好,因为这意味着没有音频内容丢失或错过,这就是我需要的我的申请)。但现在延迟约为 4-5秒。
我需要将延迟保持在1-2秒左右。所以我想如果我能将播放速度加快到1.5倍,例如几秒钟之后,我们就会回到1-2秒的延迟。换句话说,如果缓冲区有' x'其中的数据量,以1.0倍的速度播放。如果缓冲区到达'数据量或更多,以1.5倍的速度播放,直到缓冲区恢复为“x'数据量。一种" 动态播放速度" (这有更好的(或更正确的)名称吗?)。
所以,我的问题:
任何想法&评论将不胜感激!谢谢!
答案 0 :(得分:0)
我不知道可以配置为执行此操作的播放器。
您可以使用HTML5构建简单的内容,如[here](variable speed control for audio playback in the browser?)所述。
Flash doesn't support变速播放。