AudioQueueを使用して任意のソースからオーディオをストリーミングしています(クラスには基本的にパケットを提供するデリゲートが必要です)、すべての機能をラップしてAudioQueueClass、このクラスを使用して、多くの曲を再生しています。各曲の間に、クラスをリリースし、次の曲を再生するために新しいAudioQueueClassインスタンスを作成します。私は原因を見つけることができなかった2つの問題を見ています。これらの問題にぶつかって、それに光を当てることができますios AudioQueue複数の曲をストリーミングする
1いつも、AudioQueueは数秒前の曲を再生してから現在の曲に戻ってきますが、どうしてこのようなことが起こっているのかわかりません各曲の新しいキューを作成し、私は自分のキューを適切に廃棄していると信じています私は、AudioQueueInputCallback inCallbackProcが呼び出されなくなるという問題があると考えています。これは、オーディオキューが再生を停止した3番目または4番目の曲に入っているときです。なぜなら、キューはパケットの再生と処理を停止したが、理由を見つけることができないからである...もう一つ注目すべきは、外部ソースからデバイスにストリームするときだけ、それをパケットとして使用しますが、ストリーミングの場合、サウンドはちょうど停止します(かなり奇妙な)一方で、サウンドはちょうど停止します(かなり変です)。 、投稿するには関連する部分がわからないので、もう投稿しないでください。あなたは、コードや病気ポストのいずれかを確認したい場合はOWそれ
AudioQueueFlush(audioQueue);
AudioQueueStop(audioQueue, true);
if (audioFileStream)
{
err = AudioFileStreamClose(audioFileStream);
audioFileStream = nil;
if (err)
{
[self failWithErrorCode:AS_FILE_STREAM_CLOSE_FAILED];
}
}
//
// Dispose of the Audio Queue
//
if (audioQueue)
{
err = AudioQueueDispose(audioQueue, true);
audioQueue = nil;
if (err)
{
[self failWithErrorCode:AS_AUDIO_QUEUE_DISPOSE_FAILED];
}
}