Rtc背景音乐音量设置时,有些设备最大音量是100,有些设备做大音量是15(tv,模拟器,个别移动设备),当设置默认音量是50时,超过最大音量默认取最大值,所以最大音量是15的设备需要进行转换处理
原代码
//调节音乐文件播放音量
public static int setMusicVoice(Context context) {
int voice = SharedPreferencesUtil.getPrefInt(context, MUSIC_PLAY_VOICE, 50);
int i = -1;
if (mRtcEngine != null) {
i = mRtcEngine.adjustAudioMixingVolume(voice);
}
return i;
}
新代码
//调节音乐文件播放音量
public static int setMusicVoice(Context context) {
int voice = SharedPreferencesUtil.getPrefInt(context, MUSIC_PLAY_VOICE,
LXUtils.getDefVolume(context, 50));
int i = -1;
if (mRtcEngine != null) {
i = mRtcEngine.adjustAudioMixingVolume(voice);
}
return i;
}
public class LXUtils {
public static int getDefVolume(Context context, int volume) {
//得到音量
AudioManager manager = (AudioManager) context.getSystemService(AUDIO_SERVICE);
//最大音量
int mMaxVolume = manager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
return (mMaxVolume * volume / 100);
}
}