iOS 6.1 AudioQueueStop,AudioQueueDispose错误

时间:2013-01-15 05:54:56

标签: objective-c ios6 audioqueue

对我的iOS应用程序使用音频队列,我在iOS6.1上测试时遇到了一些问题,尽管它在iOS6上运行良好。

问题是 AudioQueueStop AudioQueueDispose 不会立即返回,有时会崩溃。

像这样:

if (_audioQueue)
{
  auto err = AudioQueueStop(_audioQueue, true);   // Some delay before return
  for (int i = 0; i < kNumberAudioQueueBuffers; i++) {
    AudioQueueFreeBuffer(_audioQueue, _audioQueueBuffer[i]);
  }    
  err = AudioQueueDispose(_audioQueue, true);    // This also has delay
  _audioQueue = nil;
}

这不是在主线程上调用的,而是在另一个线程上调用,但是其他东西,例如 AudioQueueNewoutput AudioQueueStart 也在该线程上调用。

实际上我试图运行一个使用AudioQueue作为测试的简单应用程序,在这种情况下它运行良好(在iOS6和6.1上)。所以我的代码中的其他部分可能会影响,但我无法理解。

是否有人遇到类似问题并希望修复?

1 个答案:

答案 0 :(得分:0)

我在AudioQueueSetProperty()和kAudioQueueProperty_MagicCookie中遇到类似的问题。当iOS 6.0及更早版本正常运行时,我的应用程序每次都会崩溃 。我认为Apple搞砸了6.1中的音频队列实现。