以下代码过去曾为我工作。我现在正在用 iOS4 尝试它,但没有运气。它在模拟器中工作,但我在设备本身上听不到任何声音。我首先尝试将一些样本记录到一个NSMutableData
变量中,然后尝试回放它们。
我已经尝试过 Apple 的 SpeakHere 示例——它可以工作(但它是从文件中播放的——而不是内存)。
知道我错过了什么吗?
AudioSessionInitialize(NULL, NULL, NULL, NULL);
UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
AudioSessionSetActive(true);
AudioQueueNewOutput(&m_format,&OutputCallback,self,CFRunLoopGetCurrent(), kCFRunLoopCommonModes,0,&m_device);
AudioQueueBufferRef nBuffer=NULL;
AudioQueueAllocateBuffer(m_device,[data length],&nBuffer);
nBuffer->mAudioDataByteSize=[data length];
[data getBytes:(nBuffer->mAudioData) length:(nBuffer->mAudioDataByteSize)];
AudioQueueEnqueueBuffer(m_device,nBuffer,0,NULL);
AudioQueueStart(m_device,NULL);