SirHamlet
SirHamlet

Reputation: 143

how to adjust volume in openSL ES (Android)?

As I read from the official docs for openSL ES, there are capabilities for setting volume level from Audio Player. But how? I tried to get VolumeItf from the audio player but got:

SL_RESULT_FEATURE_UNSUPPORTED

Is I understood, this message means that profiles are not suuported in Android. But how to get access to volume control?

Thanks in advance

Upvotes: 7

Views: 4565

Answers (1)

mootoh
mootoh

Reputation: 315

Create AudioPlayer object with IID_VOLUME request. Without doing this, the API returns SL_RESULT_FEATURE_UNSUPPORTED.

const SLInterfaceID ids[2] = {SL_IID_SEEK, SL_IID_VOLUME};
const SLboolean req[2] = {SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE};

(*engine)->CreateAudioPlayer(engine, &playerObject, &src, &sink, 2, ids, req);

This workaround is not straightforward but works for me on ndk r6.

Upvotes: 9

Related Questions