如何在openSL ES(Android)中调整音量?

Sir*_*let 8 audio android volume android-ndk

当我从openSL ES的官方文档中读到时,可以从Audio Player设置音量级别.但是怎么样?我试图从音频播放器获得VolumeItf,但得到了:

SL_RESULT_FEATURE_UNSUPPORTED

我理解,这条消息意味着Android中没有提供配置文件.但是如何获得音量控制?

提前致谢

小智 9

使用IID_VOLUME请求创建AudioPlayer对象.如果不这样做,API将返回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);
Run Code Online (Sandbox Code Playgroud)

这种解决方法并不简单,但在ndk r6上适用于我.

  • 我不会称之为解决方法.卷接口未在播放器对象的规范中列为隐式,因此必须在创建对象时指定它. (5认同)