이상한 AQDefaultDevice 로깅


140

다음과 같은 컨트롤러에서 비디오를 재생하고 있습니다.

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()
}

컨트롤러가 파괴되어 더 이상 사용되지 않는 경우에도 매 초 마다이 로그 메시지가 나타납니다.

AQDefaultDevice (173): skipping input stream 0 0 0x0

이 로그를 숨기는 방법을 묻지 않습니다. 내가 설정하여 해당 작업을 수행하는 방법을 알고 OS_ACTIVITY_MODE에 disable( 이 로그를 숨기는 방법이를 참조하십시오 ). 내 관심사는 컨트롤러가 파괴 된 후에도 영화가 여전히 어떻게 든 재생되고 있다는 것입니다. 영화를 재생하는 방식에 문제가 있습니까? 아니면 추가 정리를 수행해야합니까?


이 답변이 당신에게 적합 할 것 같아요. 자세한 내용으로 로그를 제거하는 방법에 대해 설명합니다. stackoverflow.com/a/40336926/4602597
— MessuKilkain

6
내 질문은 원치 않는 로그를 숨기는 방법에 관한 것이 아닙니다. 나는 마지막 단락에서 그것을 분명히했습니다. 내 질문은 해당 특정 로그가 AVPlayer와 관련된 릴리스되지 않은 리소스를 가리키는 지 여부입니다.
— RajV


이 질문 (및 의견에 링크 된 솔루션)을 찾은 유일한 이유는 다른 로그를 읽는 데 방해가되므로 멀티미디어 플레이어 객체에 대한 로그의 성가신 측면을 비활성화하는 것입니다. FWIW. 그러나 네, 분명히 당신은 일을 올바르게하고 있으며 로그는 정상적으로 작동하지 않습니다.
— Alex Hall

너무 짜증나. 나는 플레이어가 왜 멈추지 않았는지 알기 위해 몇 시간을 보냈고 지금은 내가 알 수있는 한 XCode 버그입니다. @RajV에 대한 다른 답변을 찾으셨습니까?
— David Vincent Gagne

답변:


67

iOS Simulator (xcode 8.1)에서 AVPlayer Foundation을 사용할 때이 문제가 발생하지만 iOS 장치에 더 이상 기록되지 않습니다. 제 생각에는 로그 버그입니다. 플레이어 또는 레이어가 파괴되었습니다.


최신 정보

원치 않는 로그 메시지 를 수정 하기 위해 이것을 얻었습니다.


동일한 로그가 있고 AVPlayer Foundation을 사용하지 않습니다.
— Dima Deplov

잘 모르겠습니다. Xcode 7을 사용할 때 로그 메시지가 사라졌습니다
— zippo

1
AVPlayer를 사용한 후에도 같은 문제가 있습니다.
— ben

얘들 아, 난 U이있어 원치 않는 로그 메시지를 해결
— 지포

101

아니요, 당신은 아무 잘못도 없습니다. 이것은 Xcode8 + iOS10의 로그 관련 버그입니다.


우리는 이런 식으로 그것을 얻을 수 있습니다 (장치와 시뮬레이터는 다른 값이 필요합니다) :

이름 OS_ACTIVITY_MODE과 값을 추가 ${DEBUG_ACTIVITY_MODE}하고 확인하십시오 (제품-> 구성표-> 구성표 편집-> 실행-> 인수-> 환경에서).

여기에 이미지 설명을 입력하십시오

사용자 정의 설정을 추가 DEBUG_ACTIVITY_MODE추가 한 후, Any iOS Simulator SDK대한 Debug과에의 값을 설정 disable(프로젝트에서 -> 빌드 설정 -> + -> 사용자 정의 설정)

여기에 이미지 설명을 입력하십시오


8
내 질문을 읽었습니까? 이미 OS_ACTIVITY_MODE를 사용하여 로깅을 비활성화 할 수 있다고 말했습니다. 그것은이 질문의 요점이 아닙니다.
— RajV

이것은 Xcode8 + iOS10의 로그 관련 버그입니다. -이것은 귀하의 질문에 대한 답변입니다.
— Igor

내가 묻는 질문은 이러한 로그 메시지를 숨기는 방법에 관한 것이 아닙니다. "영화를 재생하는 방식에 문제가 있습니까? 아니면 정리 작업을 수행해야합니까?"
— RajV

22
시뮬레이터에서 실행을 장치에서 실행으로 전환 할 때마다 수동으로 환경 변수를 변경해야하는 "솔루션"은 전혀 솔루션이 아닙니다.
— matt

14
더 나은 해결책을 찾으면 알려주십시오.
— Igor

0

실제로 대답은 아니지만 누군가가 이것을 디버깅하는 데 도움이 될 수있는 더 많은 단서가 있습니다 ...

Xcode 9 / iOS 11 프로젝트에서 AVFoundation 프레임 워크를 제거하자마자이 경고가 표시되기 시작했습니다. AVFoundation (특히 AVPlayer 및 AVPlayerLayer)을 사용하고 있지만 대상의 Linked Frameworks and Libraries 편집기에서 프레임 워크를 제거한 다음 Frameworks 폴더에서 프레임 워크를 제거한 후에도 여전히 제대로 실행되고 컴파일되었습니다 (다른 런타임 경고를 제거하려고했습니다). .

Linked Frameworks and Libraries 편집기를 통해 다시 추가하면 콘솔의 런타임 경고가 제거되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.