Dziwne rejestrowanie AQDefaultDevice

140

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

RajV
źródło
Myślę, że ta odpowiedź będzie dla Ciebie odpowiednia. Wyjaśnia sposób usuwania dziennika z dodatkowymi szczegółami. stackoverflow.com/a/40336926/4602597
MessuKilkain
6
Moje pytanie nie dotyczyło tego, jak ukryć niechciane dzienniki. Wyjaśniłem to jasno w ostatnim akapicie. Moje pytanie dotyczyło tego, czy ten konkretny dziennik wskazywał na niewydany zasób związany z AVPlayerem.
RajV
Możliwy duplikat Ukryj dziwne niechciane dzienniki Xcode 8
Alex Hall
Jedynym powodem, dla którego znalazłem to pytanie (i rozwiązanie powiązane w komentarzach) jest wyłączenie tego irytującego aspektu dziennika jako obiektu odtwarzacza multimedialnego, ponieważ przeszkadza on w czytaniu innych dzienników; FWIW. Ale tak, najwyraźniej robisz wszystko dobrze, a dziennik nie zachowuje się tak, jak powinien.
Alex Hall
To jest takie irytujące. Spędziłem godziny, próbując ustalić, dlaczego odtwarzacz się nie zatrzymuje, a teraz - o ile wiem - jest to błąd XCode. Czy kiedykolwiek znalazłeś inną odpowiedź @RajV?
David Vincent Gagne

Odpowiedzi:

67

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

zippo
źródło
Mają ten sam log, nie używają AVPlayer Foundation.
Dima Deplov
Nie jestem tego pewien, kiedy używam Xcode 7, komunikat dziennika zniknął
zippo
1
Mam ten sam problem po użyciu AVPlayera
ben
hej chłopaki, mam to dla ciebie, napraw niechciane komunikaty dziennika
zippo
101

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_MODEi Wartość ${DEBUG_ACTIVITY_MODE}i sprawdź to (w Produkt -> Schemat -> Edytuj schemat -> Uruchom -> Argumenty -> Środowisko).

wprowadź opis obrazu tutaj

Dodaj ustawienie User-Defined DEBUG_ACTIVITY_MODE, a następnie dodać Any iOS Simulator SDKdo Debugi ustaw jego wartość disable(w projekcie -> Ustawienia Build -> + -> Ustawienia definiowane przez użytkownika)

wprowadź opis obrazu tutaj

Igor
źródło
8
Czy przeczytałeś moje pytanie? Powiedziałem już, że mogę wyłączyć rejestrowanie za pomocą OS_ACTIVITY_MODE. Nie o to chodzi w tym pytaniu.
RajV
To jest błąd z logami w Xcode8 + iOS10. - to jest odpowiedź na Twoje pytanie.
Igor
Pytanie, które zadałem, nie dotyczy tego, jak ukryć te komunikaty dziennika. To było i cytuję: „Czy jest coś złego w sposobie, w jaki odtwarzam ten film. Czy muszę przeprowadzić jakieś porządki?”
RajV
22
„Rozwiązanie”, które wymaga ode mnie ręcznej zmiany zmiennej środowiskowej, za każdym razem, gdy przechodzę z działania w Symulatorze na działanie na urządzeniu, nie jest w ogóle rozwiązaniem.
mat.
14
Jeśli znajdziesz lepsze rozwiązanie, powiedz nam.
Igor
0

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.

Dave Batton
źródło