Ich habe eine kleine App, die unter iOS und tvOS ausgeführt wird und in der ich ein Video in UIView anzeige. Sie unterstützt iOS 12 und tvOS 12. Jetzt möchte ich PIP für tvOS anzeigen. Daher wird beim Versuch, AVPictureInPictureController zu verwenden, der Fehler "Verwendung der nicht deklarierten Kennung" AVPictureInPictureController angezeigt ”.
Obwohl das Bereitstellungsziel auf tvOS 13 festgelegt wurde. In Xcode wurden die Funktionen -> Hintergrundmodus -> "Audio, Airplay und Bild in Bild" aktiviert. Dieser Basiscode gibt einen Fehler aus.
#import <AVKit/AVKit.h>
if ([AVPictureInPictureController isPictureInPictureSupported]) {
// code
}
Fehlen noch andere Einstellungen oder muss ich noch etwas tun?
Vielen Dank
MÖGLICHKEIT DER FRAGEN DURCH DIE UMSETZUNGSLÜCKEN:
Erfahrung mit dem AVPlayerViewController: Stellen Sie zunächst sicher, dass wir die Audiokategorie Wiedergabe festlegen. Im Allgemeinen, wenn wir einen AVPlayerViewController zum Abspielen von Videoinhalten verwenden. Der PIP-Modus wird automatisch aufgerufen, wenn die entwickelte Anwendung in den Hintergrund wechselt, jedoch nur, wenn die unten genannte Bedingung erfüllt ist. Erstens sollte sich der von uns verwendete Player im Vollbildmodus befinden, zweitens sollten wir sicherstellen, dass das Video angezeigt wird Das Spielen darin und das dritte ist PIP. Sollte vom Gerät unterstützt werden und als letztes die Delegatmethode schreiben, um die Benutzeroberfläche unseres Players wiederherzustellen, wenn der Benutzer im Bildmodus von Bild zurückkehrt.
Implementierung mit _AVPictureInPictureController: Ein funktionierendes Beispiel finden Sie im folgenden Thread. Wie zeige ich AVPictureInPictureController an?
Drilldown des Problems: Um zu bestätigen, dass der nicht deklarierte Fehler nicht auf die Lücken in der Implementierung und auf die Umgebung in Xcode zurückzuführen ist, laden Sie die Quelle herunter und fügen Sie den Ordner Sources in einem anderen Ordner in Ihrem Arbeitsbereich hinzu. Fügen Sie den Ordner mit " Datei zu ... hinzufügen und jetzt in xcode überprüfen.
MÖGLICHKEIT DER AUSGABE DURCH ERNEUERUNG IM XCODE Try Fix By Approach 1 Fügen Sie die Klasse explizit in den Header und / oder Body ein - anstelle der * .pch-Datei. Dann könnte dieser Fehler verschwinden. Auch das Löschen der abgeleiteten Daten funktioniert von Zeit zu Zeit. Haben Sie den Standort in den Einstellungen kürzlich zufällig geändert? Einige erhalten diesen Fehler, wenn sie eine Ramdisk für abgeleitete Daten verwenden und dann zur Standardeinstellung zurückkehren. Dies ist der ärgerlichste Fall, da dieser Fehler dann in fast jeder Datei auftritt.
Versuchen Sie Fix By Approach 2 Manchmal kann eine einfache Lösung helfen, eine der # import-Zeilen aus der pch-Datei zu löschen und neu zu kompilieren, was wie erwartet fehlschlägt. Setzen Sie dann die gelöschte Zeile wieder ein, kompilieren Sie sie neu und kompilieren Sie sie normal, wobei alle falschen Fehler verschwunden sind.
MÖGLICHKEIT DER AUSGABE WÄHREND DES XCODE ERROR CACHE, FOLGEN SIE DEN UNTEN SCHRITTEN Clean Build: Command-Option-Shift-K, um den Build-Ordner zu bereinigen. Simulator zurücksetzen: Wählen Sie iOS Simulator> Inhalt und Einstellungen zurücksetzen. Xcode neu starten Löschen Sie Ihren DerivedData-Ordner in ~ / Library / Developer / Xcode / DerivedData Computer neu starten
Löschen Sie die Ordner / var / sehr zielgerichtet. rm -rf "$ (getconf DARWIN_USER_CACHE_DIR) /org.llvm.clang/ModuleCache"
Quelle: So leeren Sie Caches und bereinigen alle Ziele Xcode 4 und höher Xcode "Verwendung nicht deklarierter Bezeichner" -Fehler, kompiliert / läuft einwandfrei Verwendung nicht deklarierter Bezeichner in Xcode 9.0 https://developer.apple.com/documentation/avkit/adopting_picture_in_picture_in_a_standard_player
quelle
So erstellen Sie einen einfachen Videoplayer
Zunächst müssen Sie einen einfachen Videoplayer in die ViewController.m-Datei Ihres Projekts implementieren, wie folgt:
Für weitere Hilfe gehen Sie durch
https://help.apple.com/xcode/mac/8.0/#/dev51a648b07
quelle