Odtwarzam wideo z kontrolera takiego:
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()
}
Nawet jeśli kontroler jest zniszczony i nie jest już używany, co sekundę otrzymuję ten komunikat dziennika:
AQDefaultDevice (173): skipping input stream 0 0 0x0
Nie pytam jak ukryć te logi. Wiem jak to zrobić poprzez ustawienie OS_ACTIVITY_MODE
na disable
( Zobacz to na jak ukryć te dzienniki ). Martwię się, że film może nadal w jakiś sposób odtwarzać się nawet po zniszczeniu kontrolera. Czy jest coś złego w sposobie odtwarzania filmu? Czy muszę przeprowadzić dodatkowe czyszczenie?
Odpowiedzi:
Mam ten problem, kiedy używam AVPlayer Foundation na iOS Simulator (xcode 8.1), jednak nie loguje się już na urządzeniach iOS. Moim zdaniem to błąd dziennika, odtwarzacz lub warstwa jest zniszczona.
aktualizacja
Mam to dla ciebie, napraw niechciane komunikaty dziennika
źródło
Nie, nie robisz nic złego. To jest błąd z logami w Xcode8 + iOS10.
Możemy to obejść w ten sposób (urządzenie i symulator potrzebują różnych wartości):
Dodaj Nazwę
OS_ACTIVITY_MODE
i Wartość${DEBUG_ACTIVITY_MODE}
i sprawdź to (w Produkt -> Schemat -> Edytuj schemat -> Uruchom -> Argumenty -> Środowisko).Dodaj ustawienie User-Defined
DEBUG_ACTIVITY_MODE
, a następnie dodaćAny iOS Simulator SDK
doDebug
i ustaw jego wartośćdisable
(w projekcie -> Ustawienia Build -> + -> Ustawienia definiowane przez użytkownika)źródło
Niezupełnie odpowiedź, ale raczej wskazówka, która może pomóc komuś zdebugować to ...
Zacząłem otrzymywać to ostrzeżenie, gdy tylko usunąłem strukturę AVFoundation z mojego projektu Xcode 9 / iOS 11. Używam AVFoundation (w szczególności AVPlayer i AVPlayerLayer), ale nadal działał i skompilował się dobrze po usunięciu frameworka z edytora połączonych struktur i bibliotek celu, a następnie usunięciu go z folderu Frameworks (próbowałem wyeliminować inne ostrzeżenie w czasie wykonywania) .
Dodanie go z powrotem za pośrednictwem edytora połączonych struktur i bibliotek wyeliminowało ostrzeżenia w czasie wykonywania w konsoli.
źródło