如何在Android中获取AudioTrack的音量?

如何在Android中获取AudioTrack的音量?,第1张

概述我可以使用track.setStereoVolume(a,b);来设置audioTrack的音量.但是我找不到像getStereoVolume()或setOnVolumeChangedHandler(…)这样的获取音量的方法.如何追踪音量?解决方法:您无法获得音轨的左右音量.因此,我建议您创建一个表示AudioTrack的类.publicclassAudioPlayer{

我可以使用track.setStereoVolume(a,b);来设置audioTrack的音量.

但是我找不到像getStereoVolume()或setonVolumeChangedHandler(…)这样的获取音量的方法.

如何追踪音量?

解决方法:

您无法获得音轨的左右音量.

因此,我建议您创建一个表示AudioTrack的类.

public class AudioPlayer{    AudioTrack track;    float leftVolume;    float rightVolume;    public AudioPlayer(){        //create audio track.        leftVolume = 1;        rightVolume = 1;    }    public voID setStereoVolume(float left, float right){        this.leftVolume = left;        this.rightVolume = right;        track.setStereoVolume(left, right);    }}

创建AudioTrack时,两个声道的立体声音量均为1.0.通过AudioPlayer设置音量时,它将跟踪新的音量.

只要AudioTrack完全封装在AudioPlayer中,此功能就可以使用.

编辑:

AudioTrack具有自己的音量级别,与其他轨道无关. AudioTrack正在播放的流(STREAM_MUSIC,STREAM_SYstem等)也会影响最终的音量.

因此,假设您的AudioTrack左右声道分别为0.5,.5,并且在STREAM_MUSIC上播放.如果该流的音量为0.5,则最终音频电平为

.5*.5 = .25 //for the left and right channels.

如果由于节电或耳机而进行了一些自动音量调节,无论如何,它都应该在Stream级(或超出此范围的某个隐藏位置)上进行.但是,它不应该调节AudioTrack的音量.

总结

以上是内存溢出为你收集整理的如何在Android中获取AudioTrack的音量?全部内容,希望文章能够帮你解决如何在Android中获取AudioTrack的音量?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1074925.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存