0

アプリバンドル(ローカルに保存されている)にあるオーディオファイルを、シームレスに移行しながら次々に再生する必要があります。

AVCompositionを使用することは、最初のオーディオファイルの名前が再生を開始した後でしかわからないため、私には適していません。そのため、事前にそれらを一緒に追加することはできません。

2つのAVAudioPlayerを操作して、最初のAVAudioPlayerが終了したときに、2つ目のプレーヤーを開始しようとしましたが、遷移が100%正確ではないため、2つの間に(非常に)小さな沈黙が聞こえます。

オーディオをバイトに分割してストリームとして再生するのが唯一の方法だと思っていますが、この時点で立ち往生しています(これが方向であると考えています)。

何か案は?

ありがとう、

4

1 に答える 1

0

試すことができAVQueuePlayerます。

最初のオーディオ ファイルの再生が開始された後に 2 番目のオーディオ ファイル名がわかっている場合は、次のコマンドで 2 番目のオーディオのアセットを取得します。

AVURLAsset *asset = [AVURLAsset URLAssetWithURL:fileURL オプション:nil];

次に、アセットをロードします

[asset loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:tracksKey] completionHandler:

読み込みが完了したら、新しいアイテムをプレーヤー キューに追加します。

[queuePlayer insertItem:anItem afterItem:nil];

最初のオーディオの再生が完了すると、プレーヤーは 2 番目のオーディオの再生を続けます。試していませんが、一時停止はないと思います。

于 2011-09-21T10:16:13.940 に答える