AVPlayer nie jest zsynchronizowany

Naprawdę nie mam pomysłów, więc będę musiał ponownie zapytać ...

Buduję aplikację na iPhone'a, która używa trzech instancji AVPlayera. Wszyscy grają jednocześnie i bardzo ważne jest, aby to robili. Użyłem tego kodu do uruchomienia:

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];

który działał idealnie. Ale kilka dni temu po prostu przestał działać, trzech graczy jest opóźnionych o około 300-400ms (co jest dużo, wszystko poniżej 100ms będzie w porządku). Dwie z tych aplikacji AVPlayer mają pewne przetwarzanie dźwięku, co zajmuje trochę więcej czasu niż „normalny” odtwarzacz AVPlayer, ale wcześniej działało, a właściwość currentTime mówi mi, że te odtwarzacze są opóźnione, więc synchronizacja nie powiedzie się.

Nie mam pojęcia, dlaczego przestał działać, naprawdę niczego nie zmieniłem, ale używam obserwatora, gdzie mogę zadać właściwość self.playerX.currentTime, co daje mi opóźnienie około 0,3 .4 sekundy. .. Próbowałem ponownie zsynchronizować graczy, jeśli opóźnienie> .1f, ale opóźnienie nadal istnieje. Myślę, że przetwarzanie audio odtwarzacza 1 i 2 nie może być odpowiedzialne za opóźnienie, ponieważ właściwość currentTime wie, że są opóźnione (mam nadzieję, że wiesz, co mam na myśli). Może ktoś z was wie, dlaczego mam tak straszne opóźnienie, lub jest w stanie podać mi inny pomysł.

Z góry dziękuję!

questionAnswers(1)

yourAnswerToTheQuestion