我從包含編碼PCM緩衝區的套接字接收一系列UDP數據包。解碼完後,我剩下一個int16 *音頻緩衝區,我想立即播放。iOS:從流中播放PCM緩衝區
預期的邏輯是這樣的:
init(){
initTrack(track, output, channels, sample_rate, ...);
}
onReceiveBufferFromSocket(NSData data){
//Decode the buffer
int16 * buf = handle_data(data);
//Play data
write_to_track(track, buf, length_of_buf, etc);
}
我不知道這一點具有雖然回放緩衝區做的一切。在Android上,我可以通過創建一個AudioTrack對象,通過指定採樣率,格式,通道等來設置它,然後使用緩衝區調用「寫入」方法(就像我希望的那樣我可以在我的僞代碼上面),但在iOS上,我很快就來了。
我嘗試使用音頻文件流服務,但我猜我做錯了,因爲沒有聲音出來,我覺得這些功能本身並沒有實際做任何播放。我也嘗試瞭解音頻隊列服務(我認爲它可能接近我想要的),但是我無法找到任何簡單的代碼示例來了解它的用法。
任何幫助將不勝感激,特別是以示例代碼的形式。
嘿,你設法解決它嗎?我有類似的問題,如果可能的話請發佈你的代碼樣本。 – moenad