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

标签 android audio android-ndk volume

正如我从 openSL ES 的官方文档中读到的那样,有从音频播放器设置音量级别的功能。但是怎么办?我试图从音频播放器获取 VolumeItf 但得到:

SL_RESULT_FEATURE_UNSUPPORTED

据我所知,此消息表示配置文件在 Android 中不受支持。但是如何访问音量控制?

提前致谢

最佳答案

使用 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);

这个解决方法并不简单,但适用于 ndk r6。

关于android - 如何在 openSL ES (Android) 中调整音量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6750514/

相关文章:

r - "How can I use R to extract only one channel from a multi-channel WAV file in order to enable soundecology to calculate indices?"

c++ - 如何解决 "Didn' t 在路径 : DexPathList in my native callback to Java 上找到类 "..."

android - ndk 中的未知类型名称 'ACameraDevice'

java - Superpowered NDK Android : returning int succeeds in "extern" block, 调用函数失败

android - 无法在 Android 上发送短信

android - 取决于家长 Activity - 在 Android 上

iphone - AudioQueue不输出任何声音

html - html5中的音频标签安全

android - Admob 横幅降低了应用程序的速度并在主线程上做了太多工作 - Android

Android ListFragment 错误