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

发布于 2024-11-24 22:44:05 字数 179 浏览 0 评论 0原文

正如我从 openSL ES 的官方文档中读到的,可以从音频播放器设置音量级别。但如何呢?我尝试从音频播放器获取 VolumeItf 但得到:

SL_RESULT_FEATURE_UNSUPPORTED

我理解吗,此消息意味着 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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

听风吹 2024-12-01 22:44:05

使用 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。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文