奇怪的 AQDefault 设备日志记录

我正在播放这样一个控制器的视频:

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(看看如何隐藏这些日志)来做到这一点。我担心的是,即使在控制器被破坏之后,电影可能仍然在播放。我演电影的方式有什么问题吗。或者我需要执行任何额外的清理?

42137 次浏览

当我在 iOS 模拟器(xcode 8.1)上使用 AVPlayer Foundation 时,我遇到了这个问题。然而,它不再登录在 iOS 设备上。在我看来,这是一个原木错误。玩家或层被破坏。


更新

我给你带了这个 修复不需要的日志消息

不,你没有做错什么。这是 Xcode8 + iOS10中的日志错误。


我们可以这样绕过它(设备和模拟器需要不同的值) :

添加名称 OS_ACTIVITY_MODE和值 ${DEBUG_ACTIVITY_MODE}并检查它(在 Product-> Scheme-> Edit Scheme-> Run-> Arguments-> Environment 中)。

enter image description here

添加用户定义的设置 DEBUG_ACTIVITY_MODE,然后为 Debug添加 Any iOS Simulator SDK,并将其值设置为 disable(在 Project-> Build sets-> +-> User-Defied Settings 中)

enter image description here

不算是答案,但更像是线索,或许能帮助调试这个..。

当我从 Xcode 9/iOS 11项目中删除 AVFoundation 框架时,我就开始收到这个警告。我正在使用 AVFoundation (特别是 AVPlayer 和 AVPlayerLayer) ,但是在从目标的链接框架和图书馆编辑器中删除框架,然后从框架文件夹中删除框架之后,它仍然运行和编译良好(我试图消除一个不同的运行时警告)。

通过链接框架和库编辑器将其添加回来,消除了控制台中的运行时警告。