О Библиотечном доступе iPod
библиотечный доступ iPod является интерфейсом iOS для получения и игры элементов от библиотеки iPod устройства. Библиотека iPod является набором элементов носителей на устройстве, которое пользователь синхронизировал от iTunes на рабочем столе.
Как показано на рисунке 1-1, Ваше приложение имеет два способа получить элементы. Средство выбора носителей, показанное слева, является простым в использовании, предварительно упакованным контроллером представления, ведущим себя как встроенный интерфейс выбора музыки приложения iPod. Для многих приложений это достаточно.
Если средство выбора не обеспечит специализированное управление доступом, которое Вы хотите, то интерфейс мультимедийного запроса — показанный нижнему правому из Вашего приложения в числе — будет. Это поддерживает основанную на предикате спецификацию элементов от библиотеки iPod устройства.
Как изображено направо от Вашего приложения в числе, Вы тогда играете полученные элементы носителей с помощью аудиоплеера, предоставленного этим API.
Как Вы видите, классы в этом API адресуются два, обычно отличные области разработки: доступ к базе данных — для нахождения, что элементы носителей играют — и воспроизведение музыки. Однако Вы не должны быть подчиненным экспертом ни в одной области для использования этого API эффективно. библиотечный доступ iPod делает “тяжелый подъем” для Вас.
Например, полнота Вашего кода воспроизведения музыки является одной строкой — разорвались ли, играя DRM-зашифрованные файлы AAC, дорожки Apple Lossless от CD, аудиоподкасты, закодированные с iLBC или аудиокнигами. Система автоматически устанавливает буферизацию, выбирает надлежащий кодек и отправляет аудио непосредственно в выходные аппаратные средства устройства.
Используя аудиоплеер и средство выбора элемента носителей, можно реализовать выбор музыки и воспроизведение, не пишущий кода для доступа к библиотеке iPod. Классы доступа к базе данных обеспечивают полную систему запросов, когда Вы нуждаетесь в ней и остаетесь вне Вашего пути, когда Вы не делаете.
Об аудиоплеерах
Ваше приложение использует аудиоплеер в способе, которым это подобно конечному пользователю, управляющему встроенным приложением iPod. Можно программно играть, приостановиться, искать и т.д.
Основы аудиоплеера и терминология
Аудиоплеер является объектом, который Вы используете для игры элементов носителей. Это имеет очередь воспроизведения, которая является списком элементов носителей для игры. Элемент носителей является песней, аудиоподкастом или аудиокнигой.
Элементы носителей добираются на устройство, когда пользователь синхронизирует их от iTunes на рабочем столе. На устройстве полный набор элементов носителей вызывают библиотекой iPod.
Аудиоплеер знает, какой элемент теперь играет или определяемый для игры и знает, где во временной шкале того элемента воспроизведение в данный момент. Эти атрибуты изображены схематично на рисунке 1-2. (Число для объяснения только. Аудиоплеер не обеспечивает пользовательский интерфейс.)
Теперь элемент игры имеет особый статус. Например, если пользователь приостанавливает песню во встроенном приложении iPod, и затем запускает Ваше приложение, Ваш аудиоплеер может продолжать играть тот элемент от того же спота.
Дополнительные свойства закругляют аудиоплеер, делая его очень гибким. Как показано в числе, аудиоплеер также имеет режимы, состояние воспроизведения и объем.
Режим перестановки и повторный режим управляют тем же способом, которым они делают во встроенном приложении iPod.
Состояние воспроизведения - то, что Вы ожидали бы от любой системы воспроизведения аудио: игра, остановленный, приостановленный, ускоренная перемотка или перемотка. Кроме того, можно пропустить к началу следующего или предыдущего элемента носителей и возвратиться к запуску очереди воспроизведения.
Громкость полна по умолчанию и может регулироваться к любому значению вниз к тихому.
Можно получить две разновидности аудиоплеера, в зависимости от целей приложения.
Аудиоплеер приложения играет музыку локально в Вашем приложении. Это не под влиянием, и при этом это не влияет, состояние встроенного приложения iPod. В частности Ваш аудиоплеер имеет различный теперь играющий элемент, состояние воспроизведения и режимы. Когда пользователь выходит из Вашего приложения, музыка, что Вы играете остановки.
Аудиоплеер iPod, в действительности, использует встроенное приложение iPod от Вашего имени; это совместно использует состояние iPod. Когда пользователь выходит из приложения, использующего этот проигрыватель, музыка продолжает играть.
Наконец, имейте в виду следующие два важных момента об использовании аудиоплееров:
Только один аудиоплеер может играть аудио за один раз.
Аудиоплеер может использоваться только на основном потоке Вашего приложения.
Привет аудиоплеер
Вот является скелет привет примером мирового стиля, демонстрирующим библиотечный доступ и воспроизведение музыки. Через несколько минут у Вас могут быть работа, если минимальный, аудиоплеер. Испытывая недостаток в пользовательском интерфейсе, этот код стоит в очереди вся библиотека iPod устройства и начинает играть сразу на запуске.
Создайте новый проект XCode.
В XCode создайте новый проект с помощью Шаблона приложений Оконного. В окне проекта добавьте
MediaPlayer
платформа группе Платформ. Сохраните проект.Импортируйте заголовочный файл зонтика для платформы Медиапроигрывателя.
Добавьте следующую строку к
AppDelegate.h
файл, после существующего#import
строка:#import <MediaPlayer/MediaPlayer.h>
Добавьте код, чтобы создать аудиоплеер, присвоить его музыка, чтобы играть, и запустить воспроизведение.
Откройте проект
AppDelegate.m
файл реализации. Перед концомapplicationDidFinishLaunching:
блокируйте, добавьте три строки кода, показанного в Перечислении 1-1.Перечисление 1-1 очень базовый аудиоплеер
// instantiate a music player
MPMusicPlayerController *myPlayer =
[MPMusicPlayerController applicationMusicPlayer];
// assign a playback queue containing all media items on the device
[myPlayer setQueueWithQuery: [MPMediaQuery songsQuery]];
// start playing from the beginning of the queue
[myPlayer play];
Теперь, сконфигурируйте свой проект соответственно для Вашего устройства разработки, включающего установку идентификационных данных подписывания кода и идентификатора пакета. Кроме того, гарантируйте, что устройство имеет по крайней мере одну песню в своей библиотеке iPod. Создайте и выполните проект. Когда запуски приложения на устройстве, первая песня в библиотеке iPod начинает играть. Проигрыватель продолжает проигрывать все элементы в библиотеке iPod или пока Вы не выходите из приложения.
Об уведомлениях изменения аудиоплеера
Для отслеживания то, что делает аудиоплеер Вы регистрируетесь для уведомлений изменения аудиоплеера. Это важно для обеспечения, что хорошо координируются состояние Вашего приложения и состояние аудиоплеера.
Например, вот последовательность событий для того, чтобы правильно запустить воспроизведение музыки. Заметьте, что, потому что аудиоплееры воздействуют на их собственные потоки, Вы не обновляете свой пользовательский интерфейс до получения надлежащего уведомления.
Пользователь касается Игры.
Ваше приложение вызывает воспроизведение на аудиоплеер.
Аудиоплеер начинает играть и выпускает уведомление изменения состояния воспроизведения.
Ваше приложение получает уведомление и запрашивает состояние аудиоплеера, подтверждая, что это действительно играет.
Ваши обновления приложения его пользовательский интерфейс соответственно — возможно, изменение кнопки воспроизведения для высказывания Паузы.
Поддержка уведомлений изменения аудиоплеера, отслеживающая состояния воспроизведения, теперь играющего элемента и громкости воспроизведения аудиоплеера. Используя Носители Воспроизведение объясняет, как использовать их.
Домой Совместное использование и Аудиоплееры iPod
Запускаясь в iOS 4, встроенный iPod и приложения Видео могут играть носители от совместно используемых библиотек с помощью Домашнего Совместного использования. Однако сторонние приложения с помощью платформы Медиапроигрывателя все еще имеют доступ только к библиотеке iPod устройства. Это означает, что Ваше приложение не может вывести на экран заголовок совместно использованной с домом песни в Вашем пользовательском интерфейсе. Другая информация о воспроизведении — такая как текущее время воспроизведения и состояние воспроизведения — доступна, однако, при игре разделяемой среды.
Об Элементах Носителей и Библиотеке iPod
Элементы носителей — песни, аудиокниги и аудиоподкасты в библиотеке iPod — могут иметь широкий диапазон метаданных. Можно использовать эти метаданные в создании запросов и в создании привлекательных дисплеев элементов носителей в пользовательском интерфейсе. Рисунок 1-3 дает Вам общее представление о символе элемента носителей.
Все метаданные элемента носителей только для чтения. Однако при помощи элемента носителей Персистентные Значения идентификаторов, можно связать дополнительные метаданные, которыми Вы управляете в своем приложении.
Как рисунок 1-3 предполагает, метаданные элемента могут включать больше чем одну категорию информации. Так называемые общие свойства - те, которые могут примениться к любому элементу носителей. Они включают «заголовок», «художника», «иллюстрации» и многих других. Значения этих свойств обычно не изменяются в течение долгого времени.
Элемент носителей может также иметь определяемые пользователем свойства, такие как оценка и играемая в последний раз дата. Эти свойства обновляют согласно пользовательскому действию, как они делают на рабочем столе.
Средство выбора элемента носителей
Самый простой способ позволить пользователям выбрать музыку состоит в том, чтобы использовать средство выбора элемента носителей — полностью сконфигурированный модальный контроллер представления. Его пользовательский интерфейс подобен интерфейсу приложения встроенного iPod готовому к работе, как показано на рисунке 1-4.
Когда пользователь касается Сделанный, метод делегата, который Вы реализуете, получает список выбранных элементов носителей и затем отклоняет представление средства выбора.
Важно знать, что подобие между средством выбора элемента носителей и встроенным приложением iPod является только кожей глубоко. Используя iPod, пользователь может создать список воспроизведения готовый к работе. Тот список воспроизведения действует как другие списки воспроизведения; например, это появляется на вкладке Playlists приложения iPod, и это сохраняется, пока пользователь не изменяет или удаляет его.
Со средством выбора пользователь вместо этого указывает набор элементов носителей. Набор не имеет состояния списка воспроизведения. Это не сохранится после того, как пользователь выходит из Вашего приложения — если Вы не архивируете его. Ни один не будет набор появляться, ни при каких обстоятельствах, на вкладке Playlists средства выбора.
Получение элементов носителей программно
Если средство выбора элемента носителей не обеспечивает управление, Вы хотите, можно использовать классы доступа к базе данных от этого API. Эти классы разработаны, чтобы позволить Вам создать произвольно сложные запросы. Вы могли, например, получить все песни в определенном жанре, заголовки которого включают определенное слово или фразу.
Используя программируемый доступ два процесса шага:
Сконфигурируйте запрос.
Попросите, чтобы запрос получил свое соответствие элементов носителей.
Мультимедийный запрос является описанием того, что получить от библиотеки iPod устройства и как должны быть расположены те полученные элементы. Это имеет два свойства для конфигурирования:
Фильтр является описанием того, что получить. Фильтр является дополнительным; запрос filterless соответствует всю библиотеку iPod.
Группирующийся тип является дополнительным ключом, указывающим расположение использовать для полученных наборов элементов носителей.
Увеличивая масштаб немного больше, фильтр может быть столь же простым или объединить как Ваши требования приложений. Это состоит из одного или более экземпляров предиката свойства носителей. Предикат свойства носителей является оператором логического условия протестировать каждый элемент носителей против. Элементы, удовлетворяющие фильтр, получены от библиотеки iPod при вызове запроса.
Дополнительный тип группировки указывает расположение и сортировку наборов, а также сортировку элементов носителей в каждом наборе. Например, использование «альбома», группирующего тип, приводит к возвращенным элементам носителей, сгруппированным альбомом с песнями каждого альбома, сортированными в порядке треков.
Рисунок 1-5 показывает сконфигурированный мультимедийный запрос и его место между Вашим приложением и библиотекой iPod.
Поскольку данные показывают, запрос может выбрать элементы или наборы.
Когда Вы просите элементы, запрос возвращает набор, содержащий все элементы, соответствующие фильтр. Элементы находятся в «естественном» порядке, означая, что им упорядочивают, поскольку iTunes показывает им на рабочем столе.
Когда Вы просите наборы, мультимедийный запрос использует не только свой фильтр, но также и свой тип группировки.
О наборах и списках воспроизведения
Набор элементов носителей является массивом элементов носителей. Вы получаете наборы из библиотеки iPod устройства путем доступа к мультимедийному запросу collections
свойство. Возвращенное значение является сортированным массивом наборов, где каждый набор является экземпляром типа группировки запроса.
Например, скажите указание типа группировки «альбома» путем присвоения MPMediaGroupingAlbum
ключ к мультимедийному запросу — и говорит, что запрос не имеет никакого фильтра. Значение collections
свойство является тогда всем звуковым содержимым библиотеки iPod, расположенной как альбомы, один альбом на набор. Наборы (альбомы в этом случае) сортируются в алфавитном порядке. Песни (каждый элемент носителей) в каждом наборе сортируются номером дорожки. Рисунок 1-6 иллюстрирует это.
У основания числа Вы видите библиотеку iPod для устройства. В этом иллюстративном случае библиотека имеет всего два музыкальных альбома, один с семью дорожками и другим с восемь. Элементы находятся в своем «естественном» порядке, поскольку они появляются в iTunes на рабочем столе.
-Указывающая-стрелка посреди числа представляет определение обобщения (filterless) запрос, приложение типа группировки «альбома» и доступ того запроса collections
свойство.
Вершина числа представляет результат collections
вызвать. Это - массив, элементы которого, в свою очередь, массивы элементов носителей. Массив наборов сортируется названием альбома. Каждый набор сортируется номером дорожки.
Можно создать собственные наборы также. Это может быть полезно, например, для управления выборами, которые пользователь сделал со средством выбора элемента носителей. Отметьте, однако, что наборы не являются непостоянными.
Список воспроизведения является специальным видом набора элементов носителей. Это имеет свойства, которые регулярные наборы не имеют, такие как имя и персистентный ID. Списки воспроизведения создаются пользователями на рабочем столе; на устройстве они только для чтения.
Используя Уведомления Изменения Библиотеки iPod
MPMediaLibrary
объект представляет состояние библиотеки iPod устройства. Можно использовать его, чтобы гарантировать, что кэш содержания библиотеки актуален. Это полезно, потому что пользователь может синхронизировать их устройство, изменяя содержание библиотеки iPod, в то время как работает Ваше приложение.
Смешивание Собственных Звуков со Звуками Библиотеки iPod
Аудиоплеер автоматически использует категорию сеанса аудио Воспроизведения Носителей. Если Ваше приложение использует аудиоплеер и никакие другие звуки, Вы не должны писать аудио код сеанса. В частности Вы не должны инициализировать, конфигурировать или активировать аудио сеанс. Система автоматически обрабатывает воспроизведение, аудио аппаратные изменения маршрута и прерывания звука для аудиоплееров.
С другой стороны, для смешивания звуков приложения со звуками библиотеки iPod необходимо сконфигурировать и использовать аудио сеанс приложения. Используйте Окружающую категорию для поддержки смешивания. Обработайте прерывания звука, аудио аппаратные изменения маршрута и аудио оживление сеанса, как описано в Аудио Руководстве по программированию Сеанса. Для примера смешивания звука приложения со звуком iPod посмотрите выборку AddMusic.