Вы должны объявить AVPlayer
как глобальную переменную внутри вашего класса / структуры.Итак, удалите player
из addPeriodicTimeObserver
функции и объявите глобально.
Причина этого заключается в том, что
Локальные переменные (переменные, объявленные внутри функции) освобождаются как только функция вернет ;В этом случае player
освобождается до того, как начнет играть.
Переменные экземпляра (переменные, объявленные внутри области действия класса) освобождаются после того, как экземпляр классаполучить освобождение (если нет цикла сохранения).
В случае использования реального устройства для тестирования, убедитесь, что оно не находится в беззвучном режиме ?