奇怪的AQDefaultDevice日志记录

Raj*_*ajV 139 xcode ios

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

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()
}
Run Code Online (Sandbox Code Playgroud)

即使在控制器被销毁并且不再使用之后,我也会每隔一秒左右收到此日志消息:

AQDefaultDevice (173): skipping input stream 0 0 0x0
Run Code Online (Sandbox Code Playgroud)

我不是问如何隐藏这些日志.我知道如何设置OS_ACTIVITY_MODEdisable(请参阅此内容以了解如何隐藏这些日志).我担心的是即使在控制器被破坏之后,电影仍然可能以某种方式播放.我正在播放电影的方式有什么不对吗?或者我是否需要进行任何额外的清理?

Igo*_*gor 101

不,你没有错.这是Xcode8 + iOS10中的日志错误.


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

添加名称OS_ACTIVITY_MODE和值${DEBUG_ACTIVITY_MODE}并检查它(在产品 - >方案 - >编辑方案 - >运行 - >参数 - >环境中).

在此输入图像描述

添加用户定义的设置DEBUG_ACTIVITY_MODE,再加入Any iOS Simulator SDKDebug,并设置它的值disable(在项目- >构建设置- > + - >用户定义的设置)

在此输入图像描述

  • 需要我手动更改环境变量的"解决方案",每次从模拟器中运行切换到在设备上运行时都不是解决方案. (22认同)
  • 如果你能找到更好的解决方案,请告诉我们. (13认同)
  • 你读过我的问题了吗?我已经说过我可以使用OS_ACTIVITY_MODE禁用日志记录.这不是这个问题的重点. (8认同)

Omn*_*Bug 66

当我在iOS模拟器(xcode 8.1)上使用AVPlayer Foundation时,我遇到了这个问题.但是它不再在iOS设备上记录.在我看来,这是一个日志错误.玩家或图层被破坏.


更新

我得到了这个为您修复不需要的日志消息

  • 与Xcode 8.1相同的AVPlayer. (5认同)