2013-08-09 2 views
1

Привет мудрецов переполненной Stack, Android нуба здесь ..потокового аудио между приложениями в Android

Я использую CSipSimple и хочу, чтобы поток аудио вызова в другое приложение, в кусках 1 секунду аудиоданных, он может обрабатывать необработанные данные pcm. Код, который обрабатывает аудио в CSipSimple, является родным, поэтому я предпочитаю использовать собственные подходы, а не callback Java. Я подумал о нескольких способах этого:

  1. Используйте аудиопоток и позвольте другому приложению получить его.
  2. Запись данных в файл и чтение в другое приложение.
  3. Вызов службы в другом приложении (AIDL)
  4. Использование намерений.

Таковы соображения, ведущие к моему dillema: Streaming выглядит как естественный выбор, но я не мог найти Android поддержки для извлечения исходных данных PcM из аудиопотока. Механизм намерений является гибким и удобным, но я не думаю, что это то, для чего они предназначены. Использование файла кажется громоздким, хотя оно хорошо поддерживается. Наконец, использование сервиса кажется хорошим вариантом, но оно кажется менее гибким и, вероятно, требует большей обработки ошибок и управления потоками.

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

ответ

0

Я не знаю о поддержке потокового аудио API, поэтому я не буду касаться этого случая. Что касается записи данных в файл и позволяет другому приложению читать его - это возможный случай, как решить вашу проблему.

Что касается вызова службы через AIDL и использования намерений, я не думаю, что это хорошее решение. Проблема в том, что Binder имеет ограничение на размер данных (1 МБ), которые могут быть переданы в транзакции.

С моей точки зрения, лучшим решением (особенно если вы работаете на родном языке) является использование AshMem. Это драйвер общей памяти, разработанный специально для Android. Таким образом, в вашей службе вы создаете область разделяемой памяти и передаете ссылку на нее в свое клиентское приложение, которое считывает информацию из этой памяти.

Смежные вопросы