を同期していません。彼らはすべて同時に演奏し、そうすることが非常に重要です。私はこのコードを実行するために使用した:AVPlayerは私がAVPlayerの3つのインスタンスを使用してiPhoneアプリケーションを構築しています...再び</p> <p>をあなたたちに依頼する必要がありますので、私はアイデアを本当にだ
CMClockRef syncTime = CMClockGetHostTimeClock();
CMTime hostTime = CMClockGetTime(hostTime);
[self.playerOne setRate:1.0f time:kCMTimeInvalid atHostTime:hostTime];
[self.playerTwo setRate:1.0f time:kCMTimeInvalid atHostTime:hostTime];
[self.playerThree setRate:1.0f time:kCMTimeInvalid atHostTime:hostTime];
これは完璧に働いた。しかし、数日前に仕事が止まったので、3人のプレーヤーは約300〜400ms遅れています(これは大したことですが、100ms以下のものは大丈夫です)。これらのAVPlayerのうちの2つは、「通常の」AVPlayerよりも時間がかかるAudio処理をいくつか持っていますが、以前は動作していましたが、currentTimeプロパティはこれらのプレーヤーが遅れていることを示しています。
私は実際に何かを変更しなかったのですが、私は実際に何かを変更しませんでしたが、私はself.playerX.currentTimeプロパティを尋ねることができるオブザーバーを使用しています。 .4秒...遅延が.1fだが遅延がまだ残っている場合、私はすでにプレーヤーを再同期しようとしました。だから私は、player1と2のオーディオ処理は、currentTimeプロパティが遅延していることを知っているので、遅れても応答できないと思います。たぶんあなたの誰かが、なぜ私がこのような恐ろしい遅れを持っているのかを知っているか、別のアイデアを提供することができます。
ありがとうございます!
共有いただきありがとうございます。このソリューションは非常に役に立ちました。 –
リモートアセットでも機能しますか? – zevarito
ありがとうマックス、元のコードを含めるように回答を編集できますか?私は理解していない、setRateはprerollAtRateの完了ハンドラの各プレイヤを呼び出すか? –