Вопрос

The OpenSLES specifications 1.0.1 demonstrates the implementation for 3D audio. My interest is in specifying locations for a 3D audio source.

I tried implementing this in android 14 but it gave "SL_RESULT_FEATURE_UNSUPPORTED" as result. As informed in this link 3D Sound in OpenSL ES features like 3D location, Listener and in general all 3D features require the USE_PROFILES_GAME to be set.

Because OpenSLES is not an independent entity and depends on other system libraries(like wilhelm.so) I could not really compile that library independently. So I downloaded the entire android source, set USE_PROFILES_GAME flag, included the 3D related class in Android.mk which is by default excluded and then build the new system.

Now using the new android system image I am able to get the Location inferace but it doesn't seem to work i.e. I can't feel the location of my source audio changing.

Has anyone ever successfully implemented 3D audio features(especially 3D audio locations) in android? Is there any dependency of 3D audio features on mobile hardware?

Any help is appreciated.

Это было полезно?

Решение

I had the same problem when I was trying to develop a prototype app that needed the 3D audio capabilities.

I didn't go as far as you did with compiling my own android source, but thought of that. Back ten I came across an Android compiled openal library here on SOF. As had to drop the project for an other one I started to look at the problem again last week. What I found was this:

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

It seems to be the missing link but has to be licenced for your app. Maybe this is helpful for you. I says the folowing on their website "The implementation realizes the missing 3D audio functionality in the Android OpenSL ES implementation." However even if it says "The API is AM3D's simple and proprietary API." the technical documentation seems to show off, that you are programming the 3D effects themself in the standard OpenSL ES way.

Другие советы

There is still no support for the 3D interface on any device I am aware of.

From the ndk/docs/opensles/index.html: " Note: though based on OpenSL ES, the Android native audio API is not a conforming implementation of any OpenSL ES 1.0.1 profile (game, music, or phone). This is because Android does not implement all of the features required by any one of the profiles. "

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top