이상한 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_MODEdisable( 이 로그를 숨기는 방법이를 참조하십시오 ). 내 관심사는 컨트롤러가 파괴 된 후에도 영화가 여전히 어떻게 든 재생되고 있다는 것입니다. 영화를 재생하는 방식에 문제가 있습니까? 아니면 추가 정리를 수행해야합니까?


이 답변이 당신에게 적합 할 것 같아요. 자세한 내용으로 로그를 제거하는 방법에 대해 설명합니다. 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.