Я постараюсь ответить на ваш вопрос, насколько мне известно:
Приложение может хранить и воспроизводить загруженные файлы MP3 ЛОКАЛЬНО (необязательно в потоковом или встроенном виде).
- Вы можете использовать либо
AVPlayer
, либо AVAudioPlayer
. AVPlayer
имеет больше возможностей. Проверьте документацию Apple здесь для AVPlayer
. И здесь для AVAudioPlayer
.
Пользователь имеет базовый c контроль проигрывателя звука (воспроизведение / пауза / очистка / громкость).
AVAudioPlayer
имеет все необходимые элементы управления для воспроизводимого звукового файла.
Приложение имеет аудио-очередь (порядок воспроизведения трека), которую можно настроить в в любое время с помощью приложения.
- Вам нужно будет использовать
AVQueuePlayer
, который наследуется от AVPlayer
. Проверьте документы Apple здесь .
Пользователь может выбрать воспроизведение на аудиоустройствах Bluetooth, к которым подключен телефон.
- Это не имеет значения, какой вы выбираете из вышеперечисленного. Это
AVAudioSession
вариантов. Проверьте документы здесь .
Звук может воспроизводиться в фоновом режиме (при выключенном экране или в другом приложении).
- Вам необходимо добавить в приложение возможность
BackgroundMode
и проверить аудио, параметры трансляции.
Звук может запускать трек и настраивать очередь в фоновом режиме (без взаимодействия с пользователем) .
- Вам потребуется добавить расширение приложения для управления вашим queuePlayer.
Аудио интегрируется с собственными iOS элементами управления (RemoteControlEvents) .
- Используйте
MPNowPlayingInfoCenter
и обновите его информацию, чтобы иметь возможность обновлять название песни, исполнителя, обложку и т. Д. c ... Документы Apple здесь .
В дополнение к MPRemoteCommandCenter
для прослушивания событий и соответствующего обновления вашего проигрывателя Документы .
Воспроизведение аудио может перекрывать воспроизведение musi c как приложение для указаний (я понимаю, что это сводит на нет фоновые и «играющие» функции, но, возможно, это помогает обсуждению для более ясного обоснования выбора метода для разработчиков приложений.
- Также в параметрах категории
AVAudioSession's
добавьте параметр .mixWithOthers
.
Так вы бы использовали AVAudioPlayer или AVPlayer или MPMusicPlayerController? MPRemoteCommandCenter или MPNowPlayingInfoCenter?
Используйте MPMusicPlayerController
, если вы играете из библиотеки устройств.
Я думаю, что вышеизложенное суммирует основные моменты этого. Есть много вещей, о которых вы должны заботиться, когда вы используете эти вещи вместе, например, не все опции работают со всеми режимами AVAudioSession's
. В проигрывателях есть много свойств, и установка неправильного набора может помешать вам работать игроку.