Как установить AVPlayerItem на ноль, когда наблюдатель не завершает

Я добавляю наблюдателя с именем 'status' в AVPlayerItem. Отправьте наблюдателя, затем установите AVPlayerItem на ноль, когда наблюдатель не завершит

Я должен удалить наблюдателя, когда Deloloc AVPlayerItem

Получите следующую ошибку:

NSInternalInconsistencyException ', причина: ' Экземпляр 0x7dc5e7d0 класса AVPlayerItem был освобожден, в то время как наблюдатели значения ключа все еще были зарегистрированы в нем. Информация о текущем наблюдении: (Контекст: 0x0, Свойство: 0x7b8ad140>

3 ответа

Решение

Это вызвало первоначальный avplayeritem от async

Я не верю AVPlayerItem надо что-то наблюдать, трудно сказать в твоем случае без конкретного примера. Обычно потоком для этого будет то, что ваш контроллер будет наблюдателем при некотором уведомлении от AVPlayerItem,

Например:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(movieItemDidReachEnd:)
                                             name:AVPlayerItemDidPlayToEndTimeNotification
                                           object:nil];

Затем, когда вы закончите (т.е. когда вы устанавливаете AVPlayerItem в nil), вы удаляете наблюдателя:

[[NSNotificationCenter defaultCenter] removeObserver:self name:AVPlayerItemDidPlayToEndTimeNotification object:nil];

Если вы предоставите более подробную информацию, может быть, я могу помочь больше. Спасибо!

Редактировать:

В скором времени это будет...

    NSNotificationCenter.defaultCenter().addObserver(self, selector: "movieDidReachEnd", name: AVPlayerItemDidPlayToEndTimeNotification, object: nil)

    NSNotificationCenter.defaultCenter().removeObserver(self, name: AVPlayerItemDidPlayToEndTimeNotification, object: nil)

Перед тем как установить playerItem на ноль, удалите наблюдателя:

playerItem.removeObserver(self, forKeyPath: "status")

Если вы подождете до deinit/dealloc, после того как вы уже установили playerItem на nil, у вас больше не будет ссылки на него, чтобы удалить наблюдателей.

Другие вопросы по тегам