opensl es v1.01 to v1.1

#1

Hi all
i am developing a java project for recording call, since there is a problem using
MediaRecorder.AudioSource.VOICE_CALL
MediaRecorder.AudioSource.VOICE_DOWNLINK
MediaRecorder.AudioSource.VOICE_UPLINK

i found my self dealing with opense es, in the version 1.1 some features were added like
SL_IODEVICE
#define SL_IODEVICE_AUDIOINPUT ((SLuint32) 0x00000001)
#define SL_IODEVICE_LEDARRAY ((SLuint32) 0x00000002)
#define SL_IODEVICE_VIBRA ((SLuint32) 0x00000003)
#define SL_IODEVICE_RESERVED4 ((SLuint32) 0x00000004)
#define SL_IODEVICE_RESERVED5 ((SLuint32) 0x00000005)
#define SL_IODEVICE_AUDIOOUTPUT ((SLuint32) 0x00000006) this is not e in v1.01
i installed E:\android-ndk-r10d, which uses v1.01, how i can use the new version v1.1 in my project, there are only 2 header files i found OpenSLES.h and OpenSLES_Platform.h and c file named OpenSLES_IID.c what about remainder files like: OpenSLES_Android.h, OpenSLES_AndroidConfiguration.h and OpenSLES_AndroidMetadata.h, There is no need for them?
plz reply to my post and show me how i can use v1.1
thanks all

#2

Hi Kanaan

Unfortunately, to use OpenSL ES 1.1 you need an OpenSL ES 1.1 implementation not just the 1.1 header files. As far as I know the Android implementation of OpenSL ES only supports version 1.0.1. If you pass values like SL_IODEVICE_AUDIOOUTPUT to a v1.0.1 implementation, it won’t know how to respond as that value has did not exist when the implementation was written.

The files you found named OpenSLES.h and OpenSLES_Platform.h are the header files which describe the specification. The other files you mention are the Android specific files which relate to the implementation.

To use OpenSL ES 1.1 on Android, you will need to update the Android audio system with the new functionality, either through a third party software supplier or write your own.

Best,

Erik

#3

Thanks Mr Erik