Seltsame AQDefaultDevice-Protokollierung

140

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_MODEauf 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?

RajV
quelle
Ich denke, diese Antwort wird zu Ihnen passen. Es wird eine Möglichkeit zum Entfernen des Protokolls mit weiteren Details erläutert. stackoverflow.com/a/40336926/4602597
MessuKilkain
6
Meine Frage war nicht, wie man unerwünschte Protokolle versteckt. Ich habe das im letzten Absatz klargestellt. Meine Frage war, ob dieses bestimmte Protokoll auf eine nicht freigegebene Ressource im Zusammenhang mit dem AVPlayer verweist.
RajV
Mögliches Duplikat von Hide seltsame unerwünschte Xcode 8-Protokolle
Alex Hall
Der einzige Grund, warum ich diese Frage (und die in Kommentaren dazu verknüpfte Lösung) gefunden habe, besteht darin, diesen nervigen Aspekt des Protokolls für ein Multimedia-Player-Objekt zu deaktivieren, da es das Lesen anderer Protokolle beeinträchtigt. FWIW. Aber ja, anscheinend machst du die Dinge richtig und das Protokoll verhält sich nicht so, wie es sollte.
Alex Hall
Das ist so nervig. Ich habe stundenlang versucht herauszufinden, warum der Player nicht angehalten hat, und jetzt - soweit ich das beurteilen kann - handelt es sich um einen XCode-Fehler. Haben Sie jemals eine andere Antwort @RajV gefunden?
David Vincent Gagne

Antworten:

67

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

Zippo
quelle
Haben Sie das gleiche Protokoll, verwendet AVPlayer Foundation nicht.
Dima Deplov
Ich bin mir nicht sicher. Wenn ich Xcode 7 verwende, ist die Protokollnachricht weg
zippo
1
Ich habe das gleiche Problem nach der Verwendung von AVPlayer
Ben
Hey Leute, ich habe das für dich, um unerwünschte Protokollnachrichten zu reparieren
zippo
101

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_MODEund den Wert hinzu ${DEBUG_ACTIVITY_MODE}und überprüfen Sie ihn (unter Produkt -> Schema -> Schema bearbeiten -> Ausführen -> Argumente -> Umgebung).

Geben Sie hier die Bildbeschreibung ein

In Benutzerdefinierte Einstellung DEBUG_ACTIVITY_MODE, dann fügen Sie Any iOS Simulator SDKfür Debugund seinen Wert setzen disable(im Projekt -> Build - Einstellungen -> + -> Benutzerdefinierte Einstellung)

Geben Sie hier die Bildbeschreibung ein

Igor
quelle
8
Hast du meine Frage gelesen? Ich habe bereits gesagt, dass ich die Protokollierung mit OS_ACTIVITY_MODE deaktivieren kann. Darum geht es in dieser Frage nicht.
RajV
Dies ist ein Fehler bei Protokollen in Xcode8 + iOS10. - Dies ist eine Antwort auf Ihre Frage.
Igor
Bei der von mir gestellten Frage geht es nicht darum, wie diese Protokollnachrichten ausgeblendet werden können. Es war, und ich zitiere: "Stimmt etwas nicht mit der Art und Weise, wie ich den Film abspiele. Oder muss ich eine Bereinigung durchführen?"
RajV
22
Eine "Lösung", bei der ich eine Umgebungsvariable jedes Mal von Hand ändern muss, wenn ich von der Ausführung im Simulator zur Ausführung auf einem Gerät wechsle, ist überhaupt keine Lösung.
Matt
14
Wenn Sie eine bessere Lösung finden, teilen Sie uns dies bitte mit.
Igor
0

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.

Dave Batton
quelle