Strange AQDefaultDevice logging
IosXcodeIos Problem Overview
I am playing video from a controller like this:
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()
}
Even after the controller is destroyed and no longer in use, I get this log message every second or so:
AQDefaultDevice (173): skipping input stream 0 0 0x0
I am not asking how to hide these logs. I know how to do that by setting OS_ACTIVITY_MODE
to disable
(See this for how to hide these logs). My concern is that the movie may be still playing somehow even after the controller is destroyed. Is there anything wrong in the way I am playing the movie. Or do I need to perform any additional cleanup?
Ios Solutions
Solution 1 - Ios
No, you do nothing wrong. This is a bug with logs in Xcode8 + iOS10.
We can get round it in this way (device and simulator need different values):
Add the Name OS_ACTIVITY_MODE
and the Value ${DEBUG_ACTIVITY_MODE}
and check it (in Product -> Scheme -> Edit Scheme -> Run -> Arguments -> Environment).
Add User-Defined Setting DEBUG_ACTIVITY_MODE
, then add Any iOS Simulator SDK
for Debug
and set it's value to disable
(in Project -> Build settings -> + -> User-Defined Setting)
Solution 2 - Ios
I got this problem when i using AVPlayer Foundation on iOS Simulator (xcode 8.1).However it doesn't log anymore on iOS devices. In my opinion it's a log bug.The player or the layer is destroyed.
update
i got this for you fix unwanted log messages
Solution 3 - Ios
Not really an answer, but more of a clue that might help somebody debug this...
I started getting this warning as soon as I removed the AVFoundation framework from my Xcode 9/iOS 11 project. I am using AVFoundation (specifically AVPlayer and AVPlayerLayer), but it still ran and compiled fine after removing the framework from the target's Linked Frameworks and Libraries editor, and then removing it from the Frameworks folder (I was trying to eliminate a different runtime warning).
Adding it back in via the Linked Frameworks and Libraries editor eliminated the runtime warnings in the console.