Учебники для OpenSL ES для Android - PullRequest
39 голосов
/ 20 июля 2011

Я пытался изучить использование библиотеки OpenSL ES, которая доступна для создания нативного аудио с Android 2.3, но, похоже, что заголовочные файлы и 600-страничный PDF спецификации являются единственной доступной документацией.

Где мне искать примеры, учебные пособия или краткий обзор возможностей?

Ответы [ 5 ]

21 голосов
/ 11 августа 2011

Существует пример приложения, поставляемого с NDK, под названием NativeAudio . В нем есть примеры практически всего, что вы когда-либо хотели бы реализовать: эффекты, потоковая передача, синтез и т. Д. Если вы посмотрите на его код, вы получите хороший старт.

16 голосов
/ 18 апреля 2012

Вы также можете посмотреть блог аудио-программирования Виктора Лаццарини, в котором есть раздел для Android: http://audioprograming.wordpress.com/category/android/

Там вы найдете рабочие примеры, они были чрезвычайно полезны для меня, чтобы начать работать с openSL, и могут использоваться в качестве основы для разработки аудио приложений с помощью ndk.

А также, не пропустите документ с техническими условиями, ведь он не такой длинный, первая часть занимает не более пятидесяти страниц и дает вам необходимую перспективу, чтобы понять, как все работает, остальное - для справочного использования. Будьте осторожны, что некоторые вещи в реализации Android OpenSL отличаются от спецификаций: для получения дополнительной информации об этом смотрите в вашем-ndk-directory / docs / opensles / index.html.

11 голосов
/ 31 октября 2012

После долгих поисков я нашел более ценную информацию:

7 голосов
/ 01 ноября 2012

Для тех, кто хочет просто воспроизвести отдельные звуковые файлы или записать короткий снимок (в одном буфере), проекта NDK будет достаточно. Я взглянул на «Руководство для начинающих Android NDK», и оно действительно не объясняет слишком много, чем пример проекта NDK.

Но на самом деле для этих приложений вам, вероятно, лучше использовать один из API Java. Использование OpenSL ES для них немного излишне, ИМХО. Будет гораздо больше кода для написания и никакого реального выигрыша.

Преимущество OpenSL для тех, кто заинтересован в меньших задержках (когда они становятся доступными) для синтеза и обработки аудио, и для этого вам, вероятно, захочется передавать потоковое аудио, а не воспроизводить / записывать отдельные буферы. Глава книги и пример NDK не научат вас этому. Блогпосты в блоге по аудио-программированию более информативны для этих целей.

0 голосов
/ 12 июля 2014

Один из блогов аудио программирования Виктора Лаццарини в разделе Android действительно хорошее начало.http://audioprograming.wordpress.com/category/android/

И есть прямой загружаемый пример кода из репозитория bitbucket git для этого блога, это самая приятная часть.

Сборка и запуск довольно просты.Для меня мне нужны эти шаги для сборки и запуска этого примера:

  1. Установить SWIG: swig-3.0.2 .Установите его в 3 этапа:

    $ configure $ make $ sudo make install.

  2. Отредактируйте build.sh, чтобы отразить местоположение вашего NDK.И запустите сценарий build.sh в каталоге верхнего уровня.
  3. Создайте build.xml с помощью:

    $ проекта обновления Android --name opensl-es-audiotest --target 1 -путь ./

  4. Сборка с помощью ant: $ ant debug
  5. Затем вы можете установить его на свое устройство и проверить его:

    $ adb install bin / opensl-es-audiotest-debug.apk

...