OpenSLES с 3D-звуком

Спецификации OpenSLES 1.0.1 демонстрируют реализацию 3D-аудио. Меня интересует определение местоположения источника 3D-аудио.

Я попытался реализовать это в Android 14, но в результате выдал «SL_RESULT_FEATURE_UNSUPPORTED». Как сообщается в этой ссылке 3D-звук в OpenSL ES, такие функции, как 3D местоположение, прослушиватель и вообще все 3D-функции требуют установки USE_PROFILES_GAME.

Поскольку OpenSLES не является независимой сущностью и зависит от других системных библиотек (например, wilhelm.so), я не мог самостоятельно скомпилировать эту библиотеку. Поэтому я загрузил весь исходный код Android, установил флаг USE_PROFILES_GAME, включил класс, связанный с 3D, в Android.mk, который по умолчанию исключен, а затем собрал новую систему.

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

Кто-нибудь когда-либо успешно реализовывал функции 3D-аудио (особенно 3D-аудио) в Android? Есть ли зависимость функций 3D-аудио от мобильного оборудования?

Любая помощь приветствуется.


person Arun George    schedule 11.02.2013    source источник


Ответы (2)


У меня была та же проблема, когда я пытался разработать прототип приложения, которому требовались возможности 3D-аудио.

Я не зашел так далеко, как вы, с компиляцией собственного исходного кода для Android, но подумал об этом. Еще десять лет назад я наткнулся на скомпилированную для Android открытую библиотеку здесь, на SOF. Поскольку мне пришлось отказаться от проекта для другого, я снова начал смотреть на проблему на прошлой неделе. Я нашел следующее:

http://www.am3d.co.jp/home-english/products/3d-audio/hardwaresoftware-platforms/android.aspx

Кажется, это недостающая ссылка, но она должна быть лицензирована для вашего приложения. Может быть, это полезно для вас. На их веб-сайте я сказал следующее: «Эта реализация реализует отсутствующие функции 3D-аудио в реализации Android OpenSL ES».». Однако даже если там написано: «API — это простой и проприетарный API AM3D».< /em>» техническая документация, кажется, хвастается тем, что вы сами программируете 3D-эффекты стандартным способом OpenSL ES.

person Pixelfahnder    schedule 17.09.2013

До сих пор нет поддержки 3D-интерфейса ни на одном известном мне устройстве.

Из ndk/docs/opensles/index.html: «Примечание: хотя и основанный на OpenSL ES, собственный API Android для звука не является соответствующей реализацией какого-либо профиля OpenSL ES 1.0.1 (игра, музыка , или телефон). Это связано с тем, что Android не реализует все функции, требуемые ни одним из профилей».

person PolyMesh    schedule 02.08.2013