繁体   English   中英

AudioQueue和iOS4?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM