Ich spiele ein Video von einem Controller wie diesem ab:
func playMovie() {
let path = Bundle.main.path(forResource: "xyz", ofType:"mov")
let url = URL(fileURLWithPath: path!)
self.player = AVPlayer(url: url)
let layer: AVPlayerLayer = AVPlayerLayer(player: self.player)
layer.frame = self.view.frame
layer.videoGravity = AVLayerVideoGravityResizeAspectFill
self.view.layer.addSublayer(layer)
self.player.play()
}
Selbst nachdem der Controller zerstört wurde und nicht mehr verwendet wird, erhalte ich jede Sekunde oder so diese Protokollmeldung:
AQDefaultDevice (173): skipping input stream 0 0 0x0
Ich frage nicht, wie ich diese Protokolle verstecken soll. Ich weiß , wie das zu tun , indem Sie OS_ACTIVITY_MODE
auf disable
( siehe dies dafür , wie diese Protokolle zu verstecken ). Ich mache mir Sorgen, dass der Film auch nach der Zerstörung des Controllers noch abgespielt wird. Stimmt etwas nicht, wie ich den Film abspiele? Oder muss ich eine zusätzliche Bereinigung durchführen?
Antworten:
Ich habe dieses Problem, wenn ich AVPlayer Foundation unter iOS Simulator (xcode 8.1) verwende. Auf iOS-Geräten wird es jedoch nicht mehr protokolliert. Meiner Meinung nach handelt es sich um einen Protokollfehler. Der Player oder die Ebene wird zerstört.
aktualisieren
Ich habe dies für Sie, um unerwünschte Protokollnachrichten zu beheben
quelle
Nein, du machst nichts falsch. Dies ist ein Fehler bei Protokollen in Xcode8 + iOS10.
Wir können es auf diese Weise umgehen (Gerät und Simulator benötigen unterschiedliche Werte):
Fügen Sie den Namen
OS_ACTIVITY_MODE
und den Wert hinzu${DEBUG_ACTIVITY_MODE}
und überprüfen Sie ihn (unter Produkt -> Schema -> Schema bearbeiten -> Ausführen -> Argumente -> Umgebung).In Benutzerdefinierte Einstellung
DEBUG_ACTIVITY_MODE
, dann fügen SieAny iOS Simulator SDK
fürDebug
und seinen Wert setzendisable
(im Projekt -> Build - Einstellungen -> + -> Benutzerdefinierte Einstellung)quelle
Nicht wirklich eine Antwort, aber eher ein Hinweis, der jemandem helfen könnte, dies zu debuggen ...
Ich erhielt diese Warnung, sobald ich das AVFoundation-Framework aus meinem Xcode 9 / iOS 11-Projekt entfernt hatte. Ich verwende AVFoundation (insbesondere AVPlayer und AVPlayerLayer), aber es wurde weiterhin ausgeführt und kompiliert, nachdem das Framework aus dem Editor für verknüpfte Frameworks und Bibliotheken des Ziels entfernt und dann aus dem Frameworks-Ordner entfernt wurde (ich habe versucht, eine andere Laufzeitwarnung zu entfernen). .
Durch das erneute Hinzufügen über den Editor für verknüpfte Frameworks und Bibliotheken wurden die Laufzeitwarnungen in der Konsole entfernt.
quelle