
我可以使用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的音量?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)