iOS アプリに Audio Queue を使用して、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 の両方で)。したがって、コードの他の部分が影響する可能性がありますが、わかりませんでした。
同様の問題があり、うまくいけば修正された人はいますか?