Как получить доступ к AVAudioPlayer во всех диспетчерах просмотра?

Это то, что я имею в виду. TableViewController . Когда я viewcontroller на одну из ячеек, представлен другой viewcontroller представлений, содержащий экземпляры AVAudioPlayer и AVAudioPlayer поиска и остановки и паузы. Затем, когда я закрываю контроллер просмотра плеера, музыка воспроизводится и не останавливается (я успешно выполнил все это до сих пор). Теперь я хочу создать кнопку «Now Playing». Когда я нажимаю на него, он возвращает меня в аудиоплеер ViewController, и я вижу прогресс песни. Есть идеи, как это сделать? Моя проблема в том, что я не знаю, как хранить информацию о песне, играющей в фоновом режиме, и постоянно обновлять эту информацию.

Вы можете добиться этого, создав класс singleton с помощью метода класса, который вернет экземпляр класса AVAudioPlayer. Все операции с AVAudioPlayer должны выполняться в этом одноэлементном классе. С помощью этого вы можете реализовать AVAudioPlayer с одним объектом, который будет доступен во всех классах контроллера класса с его текущим состоянием. Метод будет называться как:

 [[MyAVAudioPlayer getInstance] getStatus]; [[MyAVAudioPlayer getInstance] play]; 

Структура классов может быть такой:

 @interface MyAVAudioPlayer : AVAudioPlayer{ } +(MyAVAudioPlayer *)getInstance; -(void)playWithURL:(NSURL *)url; -(void)play; -(float)status; @end с @interface MyAVAudioPlayer : AVAudioPlayer{ } +(MyAVAudioPlayer *)getInstance; -(void)playWithURL:(NSURL *)url; -(void)play; -(float)status; @end 

Сделайте одноэлементный класс с AVAudioPlayer . Проверьте этот вопрос здесь

Вы ищете NSNotification вы можете добавить наблюдателя в свойство для проверки и обновления вашей ячейки при изменении этого свойства.