【发布时间】:2017-03-16 07:37:59
【问题描述】:
我正在从这样的控制器播放视频:
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 (See this for how to hide these logs) 来做到这一点。我担心的是,即使控制器被销毁,电影可能仍在以某种方式播放。我播放电影的方式有什么问题吗?还是我需要执行任何额外的清理工作?
【问题讨论】:
-
我想这个答案会适合你。它解释了一种删除日志的方法,其中包含更多详细信息。 stackoverflow.com/a/40336926/4602597
-
我的问题不是关于如何隐藏不需要的日志。我在最后一段中已经说明了这一点。我的问题是该特定日志是否指向与 AVPlayer 相关的未发布资源。
-
我发现这个问题(以及在 cmets 中链接到它的解决方案)的唯一原因是禁用日志的这个烦人的方面重新成为多媒体播放器对象,因为它会干扰读取其他日志; FWIW。但是,是的,显然你做的事情是正确的,而日志的行为却不尽如人意。
-
这太烦人了。我花了几个小时试图确定播放器为什么没有停止,而现在——据我所知——这是一个 XCode 错误。你有没有找到任何其他答案@RajV?