我们正在尝试使用AVPlayer实现低延迟的音频流(仅存在编码的音频数据,而没有视频数据)。我们已经测试了HTTP和HLS等音频流协议,并观察到播放延迟至少3秒钟。在开始播放之前,AVPlayer是否需要设备上至少3秒的输入缓冲区?
减少延迟时间是否与音频播放的质量相关?
我们可以减少此延迟吗?如果是,是否有任何建议或推荐做法?
通过使用音频单元可以将延迟最小化,因为音频单元可以要求配置非常短的音频缓冲区,通常在20 mS到5 mS甚至在某些Apple设备上更低。具有MTU大小数据包的UDP可用于在网络上传输数据,其中网络缓冲和流量干扰可能是增加延迟的主要因素。您可能必须添加一些延迟(圆形环形缓冲区填充级别),以解决网络定时抖动的更坏情况。然后,对于mp3压缩音频,加上最小的mp3块大小以及您选择的mp3解码器需要多长时间。
如果缓冲区(又名loadedTimeRanges)足以满足您的延迟条件,您可以手动观察playerItem.loadedTimeRanges
播放暂停AVPlayer,>