簡體   English   中英

需要在 iOS (Swift) 中無延遲地通過 Internet 播放 mp3 音頻

[英]Need to play a mp3 audio over the internet without latency in iOS (Swift)

我們正在嘗試使用 AVPlayer 實現低延遲音頻流(僅存在編碼的音頻數據,沒有視頻數據)。 我們測試了 HTTP 和 HLS 等音頻流協議,並觀察到至少 3 秒的播放延遲。 在開始播放之前,AVPlayer 是否需要設備上至少 3 秒的輸入緩沖區?

延遲減少是否與音頻播放質量相關?

我們可以減少這種延遲嗎? 如果是,是否有任何建議或推薦做法?

使用音頻單元可以最大限度地減少延遲,因為音頻單元可以請求配置非常短的音頻緩沖區,通常為 20 毫秒到 5 毫秒,在某些 Apple 設備上甚至更低。 具有 MTU 大小數據包的 UDP 可用於網絡上的 stream 數據,其中您的網絡緩沖和流量干擾可能是增加延遲的主要因素。 您可能必須添加一些延遲(循環環形緩沖區填充級別)來解決更糟糕的情況下的網絡定時抖動。 然后,對於 mp3 壓縮音頻,添加最小 mp3 塊大小和您選擇的 mp3 解碼器需要多長時間。

其他 API 和協議可能會增加大量開銷和緩沖延遲。

如果緩沖區(又名loadedTimeRanges)足以滿足您的延遲條件,您可以手動觀察playerItem.loadedTimeRanges播放暫停 AVPlayer

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM