Странное ведение журнала AQDefaultDevice

Я воспроизвожу видео с контроллера следующим образом:

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 (Смотрите, как скрыть эти журналы). Меня беспокоит, что фильм может все еще играть как-то даже после уничтожения контроллера. Что-то не так в том, как я играю в кино. Или мне нужно выполнить дополнительную очистку?

Ответ 1

У меня возникла эта проблема, когда я использую AVPlayer Foundation на iOS Simulator (xcode 8.1). Однако он больше не регистрируется на устройствах iOS. По-моему, это ошибка журнала. Игрок или слой уничтожен.


Обновление

я получил это для вас исправить нежелательные сообщения журнала

Ответ 2

Нет, ты не делаешь ничего плохого. Это ошибка с журналами в Xcode8 + iOS10.


Мы можем обойти его таким образом (устройству и симулятору нужны разные значения):

Добавьте имя OS_ACTIVITY_MODE и значение ${DEBUG_ACTIVITY_MODE} и проверьте его (в разделе Product → Scheme → Edit Scheme → Run → Arguments → Environment).

введите описание изображения здесь

Добавьте пользовательскую настройку DEBUG_ACTIVITY_MODE, затем добавьте Any iOS Simulator SDK для Debug и установите для нее значение disable (в Project → Настройки сборки → + → Пользовательские настройки)

введите описание изображения здесь