[英]AudioQueue and iOS4?
以下代码过去曾经为我工作。 我现在尝试在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);
我可以建议的主要内容是:
(1)确保设备未静音且音量已调高
(2)检查结果代码。 例如:
OSStatus errorCode = AudioQueueNewOutput (...) ;
if ( errorCode ) NSLog ( @"Error: %u" , errorCode ) ;
还有一些可以为您提供更多信息的东西:
当它应该正在运行时,请尝试调节音量。 如果它调整铃声音量,则表明AudioQueue无法正确播放和/或设置。 如果它调整了播放音量,则AudioQueue在请求时可能无法获取数据。
作为记录,我有一个应用程序在所有设备上的iOS 4上使用AudioQueue,因此我知道它可以正常工作,而且不是错误。
坚持下去:AudioQueue有时会非常非常烦人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.