2013-01-15 44 views
4

对我的iOS应用程序使用Audio Queue,我在iOS6.1上进行测试时遇到了一些问题,尽管它在iOS6上运行良好。iOS 6.1 AudioQueueStop,AudioQueueDispose错误

问题是AudioQueueStopAudioQueueDispose没有立即返回,或有时他们崩溃。

像这样:

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; 
} 

这不叫上主线程,但另一个线程,但其他东西,例如AudioQueueNewoutputAudioQueueStart还呼吁该线程。

其实我试图运行一个简单的应用程序,它使用AudioQueue作为测试,在这种情况下它工作正常(在iOS6和6.1上)。因此,我的代码中的其他部分可能会影响,但我无法弄清楚。

有没有人有类似的问题,并希望修复?

+0

我有同样的问题。在我的情况下,AudioQueueDispose根本不会返回。你有没有向苹果公司提交错误报告?请让我知道,如果你知道这一点 – dariaa

+0

对不起,迟到的回应。在我的情况下,问题是我注册到AudioQueue的回调函数的时间。我使用互斥机制,并导致死锁。但它并没有发生在iOS6上。 – shingt

回答

0

我看到与AudioQueueSetProperty()和kAudioQueueProperty_MagicCookie类似的问题。我的应用程序每次崩溃这被称为,当它在iOS 6.0和更早版本上正常工作时。我在想苹果在6.1中搞砸了音频队列的实现。