我正在尝试通过服务器传输音频。我已经设置了所有内容,它可以正常录制和播放静态音频,但当我尝试播放音频时,播放方面有延迟。
我进行了Google搜索,但无法找到正确的方法。我正在使用AudioRecord&用于发送和发送的Audiotrack Android媒体API接收音频数据。任何人都可以告诉我如何处理这种延迟?
我已将代码添加到GOOGLE GROUP to get clear picture。
我试过这种方式,将5块音频数据保存在一个缓冲区中,该缓冲区来自服务器和放大器。当它填充5块数据并再次获取下5块音频数据并填充它直到1024字节数据(它写入录音带和播放方法被调用)时播放。这也有延迟,任何其他解决方案??
答案 0 :(得分:2)
如果您真的想要无缓冲地执行此操作,请确保您正在使用的任何播放工具都尝试在没有缓冲区的情况下播放它。你将很难没有延迟。电视,广播等都没有“真实” - 总有某种延迟。使用互联网流,您不断发送大量数据。即使除了旅行的时间之外,所有这些数据都必须按特定的顺序保存,并且当最终用户的计算机尝试播放时,没有人想要不连贯的播放。我有主要网络的闪存播放器在我的计算机处理播放时保留大量缓存文件,但是他们的播放器不会跳过/等待缓冲/等。 (如果你加载了一些东西,并注意到使用了几百MB的额外内存,在播放过程中甚至可能更多,那就是这样。)
使用VLC,你可能能够使用一个非常小的缓冲区(过去的标准曾经是30-60秒而许多玩家仍默认为此)。我已经能够将其缓冲区设置得非常低,但它的质量流/视频非常低。虽然我猜你的大问题是你的播放是设置缓冲区,如果你的播放设置为60秒缓冲区,你在服务器端做什么并不重要...客户端会等到它有那么多一块,然后开始播放。