我在以下步驟中創建了一個AudioQueue。AudioQueue無法啓動
- 創建
AudioQueueNewOutput
- 一個新的輸出添加的屬性偵聽器
kAudioQueueProperty_IsRunning
財產 - 分配我的緩衝區與
AudioQueueAllocateBuffer
- 呼叫
AudioQueuePrime
- 呼叫
AudioQueueStart
的問題是,當我打電話AudioQueuePrime
它在控制檯上輸出以下錯誤
AudioConverterNew returned -50
Prime failed (-50); will stop (11025/0 frames)
這裏有什麼問題?
PS:
- 我在iOS上得到這個錯誤(設備&模擬器)
- 調用
AudioQueueNewOutput
安裝時的輸出回調不會被調用! - 該文件是有效的,
AudioStreamBasicDescription
不匹配的格式(AAC) - 我測試了墊的AudioStreamer文件,它似乎在那裏工作
示例初始化代碼:
// Get the stream description from the first sample buffer
OSStatus err = noErr;
EDSampleBuffer *firstBuf = [sampleBufs objectAtIndex:0];
AudioStreamBasicDescription asbd = firstBuf.streamDescription;
// TODO: remove temporary format setup, just to ensure format for now
asbd.mSampleRate = 44100.00;
asbd.mFramesPerPacket = 1024; // AAC default
asbd.mChannelsPerFrame = 2;
pfcc(asbd.mFormatID);
// -----------------------------------
// Create a new output
err = AudioQueueNewOutput(&asbd, _audioQueueOutputCallback, self, NULL, NULL, 0, &audioQueue);
if (err) {
[self _reportError:kASAudioQueueInitializationError];
goto bail;
}
// Add property listener for queue state
err = AudioQueueAddPropertyListener(audioQueue, kAudioQueueProperty_IsRunning, _audioQueueIsRunningCallback, self);
if (err) {
[self _reportError:kASAudioQueuePropertyListenerError];
goto bail;
}
// Allocate a queue buffers
for (int i=0; i<kAQNumBufs; i++) {
err = AudioQueueAllocateBuffer(audioQueue, kAQDefaultBufSize, &queueBuffer[i]);
if (err) {
[self _reportError:kASAudioQueueBufferAllocationError];
goto bail;
}
}
// Prime and start
err = AudioQueuePrime(audioQueue, 0, NULL);
if (err) {
printf("failed to prime audio queue %ld\n", err);
goto bail;
}
err = AudioQueueStart(audioQueue, NULL);
if (err) {
printf("failed to start audio queue %ld\n", err);
goto bail;
}
這些是來自音頻文件流的格式標誌
rate: 44100.000000
framesPerPacket: 1024
format: aac
bitsPerChannel: 0
reserved: 0
channelsPerFrame: 2
bytesPerFrame: 0
bytesPerPacket: 0
formatFlags: 0
cookieSize 39
你能提供我們的代碼嗎?謝謝。 – 2010-11-07 12:54:27
@Jacob這不是很多,但我現在附上它 – 2010-11-07 12:59:42