Ich bin wirklich aus Ideen, damit ich euch werden muß, um wieder fragen ...AVPlayer nicht synchronisiert
ich eine iPhone-Anwendung baute die drei Instanzen von AVPlayer verwendet. Sie spielen alle gleichzeitig und es ist sehr wichtig, dass sie das tun. Ich habe diesen Code ausgeführt:
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];
was perfekt funktioniert. Aber vor ein paar Tagen hat es einfach aufgehört zu arbeiten, die drei Spieler sind um 300-400ms verzögert (was viel zu viel ist, alles unter 100ms wäre in Ordnung). Zwei dieser AVPlayer haben einige Audio-Verarbeitungen, die etwas länger dauern als der "normale" AVPlayer, aber früher hat es funktioniert und die currentTime -Eigenschaft sagt mir, dass diese Player verzögert sind, daher scheint die Synchronisation fehlzuschlagen.
Ich habe keine Ahnung, warum es aufgehört hat zu arbeiten, ich habe nicht wirklich etwas geändert, aber ich benutze einen Beobachter, wo ich die self.playerX.currentTime-Eigenschaft fragen kann, was mir eine Verzögerung von etwa .3- .4 Sekunden ... Ich habe bereits versucht, die Player neu zu synchronisieren, wenn die Verzögerung> .1f, aber die Verzögerung ist immer noch da. Also denke ich, dass die Audioverarbeitung von player1 und 2 nicht für die Verzögerung verantwortlich sein kann, da die currentTime -Eigenschaft weiß, dass sie verzögert sind (ich hoffe du weißt, was ich meine). Vielleicht weiß jemand von euch, warum ich so eine schreckliche Verzögerung habe oder mir eine andere Idee geben kann.
Vielen Dank im Voraus!
Danke für den Austausch, diese Lösung war sehr hilfreich. –
Funktioniert das auch mit Remote-Assets? – zevarito
Danke Max, kannst du deine Antwort so bearbeiten, dass sie den Originalcode enthält? Ich verstehe nicht, wird setRate für jeden Spieler im Completion-Handler von prerollAtRate aufgerufen? –