下面的代码过去对我来说是有效的。我现在正在尝试使用iOS4,但运气不佳。它在模拟器中工作,但我在设备本身上听不到任何东西。我首先尝试将一些样本记录到NSMutableData变量中,然后尝试回放它们。
我尝试过苹果公司的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);发布于 2010-07-26 03:56:01
我可以提出的主要建议是:
(1)确保设备未静音且音量已调高
(2)检查结果码。例如:
OSStatus errorCode = AudioQueueNewOutput (...) ;
if ( errorCode ) NSLog ( @"Error: %u" , errorCode ) ;其他一些可以给你提供更多信息的东西:
当它应该运行时,试着调整音量。如果调节振铃器音量,则说明AudioQueue未正确播放和/或设置。如果AudioQueue调整了播放音量,那么当它请求数据时,可能得不到数据。
郑重声明,我有一个在所有设备上使用iOS 4上的AudioQueue的应用程序,所以我知道它是有效的,它不是一个bug。
坚持下去: AudioQueue有时会非常非常烦人。
https://stackoverflow.com/questions/3126872
复制相似问题