10

AVPlayer を使用してメディアを再生しながら、iOS で AVCaptureSession を使用してメディアを記録することに興味があります (具体的には、オーディオを再生してビデオを記録していますが、それが重要かどうかはわかりません)。

問題は、結果のメディアを後で一緒に再生すると、それらが同期していないことです。再生と録音が同時に開始されるようにするか、それらの間のオフセットを発見することによって、それらを同期させることは可能ですか? おそらく、同期を 10 ミリ秒程度にする必要があります。いつでもオーディオをキャプチャできると仮定するのは不合理です (ユーザーはヘッドフォンを使用する可能性があるため)。そのため、元のオーディオと録音されたオーディオの分析による同期はオプションではありません。

この質問は、再生と録音を同時に終了し、その結果の長さから初期オフセットを決定できることを示唆していますが、それらを同時に終了させる方法は不明です。2 つのケースがあります。1) オーディオの再生が切れた場合と、2) ユーザーが「録音の停止」ボタンを押した場合です。

この質問は、プライミングを行ってから、デバイスに依存する可能性がある固定の遅延を適用することを示唆しています。

必要な同期を実行するために使用できる別のメディア レイヤーはありますか?

関連:この質問は未回答です。

4

1 に答える 1

0

特にAVPlayerを使用してオーディオを再生している場合、同じためにAudioQueueServicesを使用することをお勧めします。バッファごとにバッファを読み取り、再生の一時停止が AVPLlayer よりも高速であるため、シームレスで高速です

[avPlayer prepareToPlay] の最初のステートメントが欠落している可能性もあります。これは、オーディオを再生する前に同期するために多くのオーバーヘッドを引き起こしている可能性があります。お役に立てば幸いです。

于 2013-12-11T15:31:15.013 に答える