Aufgrund der Anforderungen unserer Inhalteanbieter muss unsere App in der Lage sein, Airplay Mirror unseren Player zu deaktivieren, während Picture in Picture mit der Anwendung im Hintergrund läuft.
Während die Anwendung im Vordergrund ist, beobachten wir die UIScreenDidConnectNotification und nutzen diese, um einen anderen Bildschirm darzustellen, aber wenn die Anwendung in den Hintergrund gelangt ist, wird der Beobachter erst benachrichtigt, wenn die Anwendung wieder in den Vordergrund gelangt ist. Dadurch können unsere DRM-Videoinhalte auf ein AppleTV gespiegelt werden, während Picture in Picture aktiv ist.
Wir haben auch versucht, die Eigenschaft 'isExternalPlaybackActive' der AVPlayer-Instanz zu beobachten, aber selbst bei Verwendung eines Beispielprojekts mit einem AVPlayerViewController konnten wir keine Änderungen an diesem Wert feststellen. Mit einem Timer haben wir auch überprüft, dass selbst mit der App im Vordergrund und der AVPlayer-Instanz im Vollbildmodus, dass beim Spiegeln von Inhalten dieser Wert sich nicht ändert. Die einzige Zeit, in der der Schlüsselwert beobachtet wird, zeigt, dass die Wertänderung auch bei der ersten Einstellung erfolgt.
Wir haben auch versucht, einen Timer einzurichten, der bei aktiver Bildbearbeitung im Hintergrund weiterläuft. Bei aktivem Bild in Bild und der Anwendung im Hintergrund wurde beobachtet, dass der Wert UIScreen.screenscount unverändert bei dem Wert 1 blieb. Es wurde auch beobachtet, dass die Eigenschaft isExternalPlaybackActive für die AVPlayer-Instanz "falsch" blieb. .
Ein weiterer Versuch, den wir gemacht haben, ist die Einstellung von "usesExternalPlaybackWhileExternalScreenIsActive" und "allowsExternalPlayback" des AVPlayers, aber dies scheiterte auch daran, den Player daran zu hindern, durch Airplay Mirroring angezeigt zu werden.
Mit diesen Versuchen haben wir die Ressourcen aus der Dokumentation ausgeschöpft und möchten eine Lösung finden, mit der wir Picture in Picture weiterhin mit der App im Hintergrund aktivieren können.
Tags und Links ios