【发布时间】:2012-10-13 15:06:43
【问题描述】:
我正在尝试从 ios6 和 iphone4 中使用 AudioQueue 的应用程序进行录制,我发现当我用手机完成的最后一件事是通话时,AudioQueueStart 失败并显示 (2003329396),并且不能开始输入队列了。
没有之前的电话,AudioQueueStart 运行良好,多次。
以这种方式发生:
I do a phone call.
Start my app.
Creating unique audio session...
Creating session property listener...
Activating session...
Setting audio category... (Record)
Property listener received... 1919902568 kAudioSessionProperty_AudioRouteChange
Reason is: kAudioSessionRouteChangeReason_CategoryChange
Inputs avaliable (here Im looking in route dictionary information, if i have inputs information in new route )
Creating new Queue Input...
Allocate/Enqueue queue buffers...
Start Record Queue...
OSStatus ERROR (2003329396)
这似乎不影响 iphone4s。
在这种情况下,是否有任何正常的方法可以恢复将 AudioQueueStart 用于输入队列的能力?
谢谢,对不起我的格式...
【问题讨论】:
-
音频类别有问题,我将类别设置为录制,获取类别,然后设置为录制。但是当启动输入队列失败(在上面的条件下)。当它失败时,如果我将类别设置为播放,然后返回记录,输入队列会重新开始。很高兴找到这个!但很奇怪……不是吗?
-
一个丑陋的重试对我有用,没有重新创建队列,如果输入队列的 AudioQueueStart 失败,我将类别设置为播放,然后再次录制,然后调用 AudioQueueStart 现在工作...... :)
-
令人惊讶的是,这个 hack 有效!感谢分享。
标签: ios audioqueue