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

7
根据openSL ES官方文档所述,音频播放器可以设置音量。但是如何实现呢?我尝试从音频播放器中获取VolumeItf,但出现了以下错误:
SL_RESULT_FEATURE_UNSUPPORTED
我理解这个错误信息的含义是:Android不支持此类文件。那么如何才能访问音量控制呢?
提前感谢您的帮助!
1个回答

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

这个解决方案不是很直接,但在我的ndk r6上可以使用。


6
这并不是一个变通方法。在播放器对象的规范中,音量接口没有被列为隐含接口,因此必须在对象创建时指定它。 - IronMensan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接