次のコードは、過去に私のために働いていました。私は今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);