Новая функция Inter-App Audio в iOS 7 обеспечивает универсальную маршрутизацию аудио между приложениями

После WWDC на этой неделе основное внимание привлекают переработанные iOS 7 и Mavericks, и это заслуженно, но в iOS 7 появятся несколько новых важных функций, которые пока не обсуждались. Сегодня утром мы рассказали о новом фреймворке MFi Game Controller, который упростит использование аппаратных игровых контроллеров в iOS 7, но еще одной важной новой функцией в обновлении является межприложениевое аудио (inter-app audio).

Основная идея проста: межприложениевое аудио позволит разработчикам использовать свои приложения как выход и/или вход для отправки и получения аудио из других приложений. По сути, у нас уже есть такая функциональность благодаря стороннему приложению для iOS Audiobus. Однако с новой функцией межприложениевого аудио от Apple, доступной для разработчиков, приложениям больше не придется использовать стороннее приложение, такое как Audiobus, для отправки аудио друг другу. На первый взгляд, это делает Audiobus устаревшим, что является интересным шагом, учитывая, что Apple недавно внедрила поддержку стороннего сервиса в своем собственном приложении GarageBand. В любом случае, это означает появление множества новых возможностей для создания музыки и обмена аудио на вашем iPhone и iPad с выходом iOS 7 этой осенью.

Мы изучили документацию Apple по межприложениевому аудио, чтобы узнать, как оно работает, а также поговорили с Audiobus о том, что это значит для них:

Например, в описании межприложениевого аудио от Apple (ниже) GarageBand будет выступать в роли «хоста» (host), позволяя ему принимать аудио из любого аудиоприложения, которое включено как выходной «узел» (node):

Межприложениевое аудио позволяет аудиоприложениям iOS, которые являются удаленными инструментами, эффектами или генераторами, публиковать выход, который может использоваться другими аудиоприложениями. Эти приложения, публикующие выход, известны как узлы. Любое приложение, которое подключается и использует эти узловые приложения, известно как хост.

В предварительной документации для разработчиков iOS 7 Apple также описывает две реализации межприложениевого аудио, включая «InterAppAudioDelay» и «InterAppAudioSampler».

Один из примеров, InterAppAudioDelay, предназначен для эффектов, таких как задержка:

InterAppAudioDelay позволяет приложениям публиковать свои аудиовозможности, чтобы их можно было использовать совместно с другими аудиоприложениями в iOS. Этот пример иллюстрирует, как публиковать и управлять эффектом задержки, который может использоваться другим приложением. Само по себе это приложение не производит звука, оно должно использоваться совместно с приложениями InterAppAudioHost и InterAppAudioSampler.

Другой пример — для узлового приложения, используемого в качестве сэмплера:

InterAppAudioSampler — это пример узлового приложения, которое является сэмплером. Эта демонстрация показывает сэмплер, который публикует себя как удаленный инструмент и генератор. Если InterAppAudioSampler подключен как удаленный инструмент, он может воспроизводить аудио при получении MIDI-событий от хост-приложения.

Audiobus, похоже, не слишком обеспокоен межприложениевым аудио, согласно посту в своем блоге, где они поздравляют Apple с проделанной работой. Однако они признают, что межприложениевое аудио предоставляет «новую функциональность, которая имеет несколько потрясающих функций, которые могла реализовать только команда Apple с системным доступом». Возможно, речь идет о «MIDI-управлении рендерингом аудио» в межприложениевом аудио с возможностью удаленного запуска «других зарегистрированных межприложениевых аудиоприложений и многого другого».

Несколько других функций, которые предоставляет Audiobus и которые, похоже, не включены в межприложениевое аудио: стандартизированный интерфейс, панель управления для триггеров (вместо этого межприложениевое аудио имеет базовые элементы управления транспортом, которые должны быть сопоставлены с кнопками внутри каждого приложения), и Audiobus даже намекает на соединения между устройствами в своем посте в блоге — еще одна функция, не включенная в межприложениевое аудио.

Мы связались с Audiobus, чтобы узнать, что это значит для них, и они сообщили нам, что Audiobus продолжит предлагать отличные новые функции для разработчиков и музыкантов, которые не будут доступны только с межприложениевым аудио:

Команда CoreAudio от Apple проделала удивительную работу. Однако у Audiobus есть некоторые функции, которых нет у межприложениевого аудио, и наоборот, но я не уверен, могу ли я раскрыть их, так как на меня распространяется NDA до выхода iOS 7. Это совершенно другая архитектура даже с точки зрения пользователя… Некоторые пользователи могут полагаться на определенный рабочий процесс Audiobus, который нельзя воспроизвести с помощью межприложениевого аудио.

Мы действительно с нетерпением ждем новых функций iOS 7 и того, как мы сможем использовать их для создания отличного инструмента для музыкантов. Мы даже можем помочь разработчикам интегрировать межприложениевое аудио, имея доступ к специфическим функциям Audiobus, но пока слишком рано говорить что-либо конкретное или с уверенностью.

Разработчики, заинтересованные в реализации этой функции, должны будут «опубликовать экземпляр AURemoteIO как аудиокомпонент, видимый другим процессам», чтобы действовать как узел, или «использовать аудиофункции другого приложения, используя интерфейсы обнаружения аудиокомпонентов в iOS 7».

Apple опубликовала примеры в своей библиотеке для разработчиков iOS здесь.