【问题标题】:Delay in streaming audio流式音频延迟
【发布时间】:2012-09-16 13:30:37
【问题描述】:

我正在尝试通过服务器流式传输音频。我已经设置了所有内容,并且可以正常录制和播放静态音频,但是当我尝试流式传输音频时,播放端会出现延迟。

我进行了 Google 搜索,但找不到正确的方法。我正在使用 AudioRecord 和 Audiotrack Android 媒体 API 来发送和接收音频数据。谁能告诉我如何处理这种延迟?

我已在GOOGLE GROUP to get clear picture 上添加了我的代码。

我曾尝试过这种方式,将 5 块音频数据保存在通过服务器的缓冲区中,并在填充 5 块数据时播放,然后再次获取下 5 块音频数据并像这样填充它直到 1024 字节的数据(它写入音轨并调用播放方法)。这也有延迟,还有其他解决方案吗??

【问题讨论】:

  • 缓冲音频以进行播放时存在固有延迟,如果您想要在移动设备上不经常中断的体面流,则必须这样做。
  • 你不能把尚不存在的东西放入缓冲区
  • 那么我应该如何一次播放 5 块数据。我在播放音频时遇到了延迟。你能帮帮我吗

标签: android audio-streaming audio-recording android-mediaplayer audio-player


【解决方案1】:

如果您真的想无缓冲地执行此操作,请确保您使用的任何播放工具都试图在没有缓冲的情况下播放它。您将很难没有延迟。电视、广播等上没有什么是真正“直播”的——总会有某种延迟。使用互联网流,您会不断地发送大量数据。即使除了传输时间之外,所有这些数据都必须按特定顺序保存,并且在最终用户的计算机尝试播放时,没有人希望播放断断续续。我有用于主要网络的闪存播放器在处理播放时在我的计算机上保留大量缓存文件,但它们的播放器不会跳过/等待缓冲/等。 (如果您加载某些内容并注意到使用了 100 MB 的额外内存,在播放期间可能会使用更多内存,就是这样。)

使用 VLC,您也许可以摆脱非常小的缓冲区(过去的标准是 30-60 秒,许多玩家仍然默认使用此值)。我已经能够将其缓冲区设置得非常低,但它在质量非常低的流/视频上。虽然我猜你遇到的最大问题是你的播放设置缓冲区,如果你的播放设置为 60 秒缓冲区,那么你在服务器端做什么都没关系......客户端会等到它有那么多块,然后开始播放。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-12
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    相关资源
    最近更新 更多