0
我正在嘗試使用AudioQueue從服務器播放PCM流數據。如何設置AudioStreamBasicDescription屬性?
PCM數據格式:
Sample rate = 48000, num of channel = 2, Bit per sample = 16
而且,服務器不流固定字節到客戶端。 (可變字節) (例如:30848,128,2764,...字節)
如何設置ASBD? 我不知道如何設置mFramesPerPacket
,mBytesPerFrame
,mBytesPerPacket
。 我已閱讀Apple參考文檔,但沒有詳細說明。
請給我任何想法。
新增加的:在這裏,ASBD結構是我設定的。 (language:Swift)
// Create ASBD structure & set properties.
var streamFormat = AudioStreamBasicDescription()
streamFormat.mSampleRate = 48000
streamFormat.mFormatID = kAudioFormatLinearPCM
streamFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked
streamFormat.mFramesPerPacket = 1
streamFormat.mChannelsPerFrame = 2
streamFormat.mBitsPerChannel = 16
streamFormat.mBytesPerFrame = (streamFormat.mBitsPerChannel/8) * streamFormat.mChannelsPerFrame
streamFormat.mBytesPerPacket = streamFormat.mBytesPerFrame
streamFormat.mReserved = 0
// Create AudioQueue for playing PCM streaming data.
var err = AudioQueueNewOutput(&streamFormat, self.queueCallbackProc, nil, nil, nil, 0, &aq)
...
我已經設置了ASBD結構,就像上面一樣。
AudioQueue播放流PCM數據非常好幾秒,
但很快就被打停。我能做什麼?
(仍然流,並排隊AudioQueue)
請給我任何的想法。
謝謝您的回答。但是,我已經像上面那樣設置了ASBD結構。 AudioQueue很好地播放流媒體PCM數據幾秒鐘,但很快播放停止。我能做什麼? – user6081283
檢查音頻對象是否未釋放 – Bogdan