Intereting Posts
Как непрерывно воспроизводить аудиофайл, если пользователь переключился на другой модуль приложения в ios? Дисковое пространство не отказывается от системы, пока приложение не завершит работу? необходимо изменить расположение меток с помощью cgpoint (swift3) Как я могу получить свой предварительно заполненный файл Default.realm на устройстве? SKSpriteNode игнорирует дезактивацию физики Получить статус регистрации несущей iPhone? (не интернет) Проблемы с UIBezierPath счетчики currentDevice.name и iOS 10.0 iOS задает требуемое ограничение высоты на пользовательской клавиатуре UIPageViewController: как иметь «отрицательный» интервал между диспетчерами вида (со стилем прокрутки) Предел сохранения партии NSManagedObjectContext Ошибка при установке CocoaPods UICollectionViewCells во втором столбце не отвечают Почему наше приложение не может хранить простую пару ключ / значение в iCloud?

Универсальный аудиоплеер с элементами управления в нескольких контроллерах просмотра

Приложение Audioboo iOS имеет универсальный аудиоплеер с элементами управления (например, кнопкой воспроизведения / паузы). Просмотр всегда отображается на загруженных диспетчерах просмотра при воспроизведении контента. Также иногда сами контроллеры представления также имеют элементы управления (кнопка воспроизведения / паузы и таймер обратного отсчета)

Мой вопрос заключается в том, что лучше всего узнать, когда загружаете представление, которое игрок воспроизводит в своем соответствующем контенте, и обновляет состояние и таймер контроля этого вида?

Проверьте эти ссылки на скриншот http://cl.ly/image/2k213Q0L2U2w http://cl.ly/image/3o0F0a150d1T // При просмотре контроллеров представлений нижний игрок всегда отображается.

ПРИМЕЧАНИЕ. Это мой первый вопрос, когда-либо здесь, поэтому, пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы или вы хотите, чтобы я что-то прояснил:]

В вашем классе, который управляет аудиоплеером, вы должны добавить общедоступное свойство, которое будет указывать на текущий исполняемый объект. Например:

@interface MyAudioPlayer : AVPlayer ... @property (nonatomic, strong) Song *currentSong ... @end 

и не забудьте назначить соответствующую песню этому свойству всякий раз, когда начнется воспроизведение новой песни.

Затем вы сможете получить доступ к этой текущей песне с любого контроллера вида.

UPD:

После некоторого уточнения я публикую обновление для дальнейшего использования. Для управления перепиской между данными игрока и частью пользовательского интерфейса для нескольких UIViewControllers существует 3 основных подхода:

1) Возможно, вы захотите использовать NSNotification , отправленную классом менеджера проигрывателя, когда появится какое-то событие (например, изменение песни и т. Д.) И перехвачено вашими контроллерами.

2) Вы можете использовать KVO и подписывать свои контроллеры просмотров на изменения в классе игроков.

3) Вы можете взглянуть на ReactiveCocoa, который является заменой парадигмы KVO.

Создайте пользовательскую вкладку, в которой воспроизводится песня, и есть панель для отслеживания прогресса и т. Д. Затем, когда вы меняете представления, просмотр текущей песни не изменится и останется неизменным. Вы также можете добавить пользовательский вид в верхней части экрана с помощью AppDelegate. Надеюсь, это поможет!