gpt4 book ai didi

android - 将初始音量设置为电话铃声音量

转载 作者:搜寻专家 更新时间:2023-11-01 08:10:01 25 4
gpt4 key购买 nike

我正在尝试做到这一点,以便在用户打开应用程序时将音乐音量设置为他们手机铃声的音量。到目前为止,这是我的代码,但我不确定 setVolume(float, float) 上的参数是什么。 android文档没有很好地解释它。我的代码在这里做错了什么?

  AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int currentVolume = audio.getStreamVolume(AudioManager.STREAM_RING);

mPlayer = MediaPlayer.create(this, R.raw.song);
mPlayer.setOnErrorListener(this);

if(mPlayer!= null)
{
mPlayer.setLooping(true);
mPlayer.setVolume(currentVolume,1);
}

最佳答案

看起来像audio.setStreamVolume是您想要的,但传入 STREAM_MUSIC 而不是 STREAM_RING。

注意:音乐音量和铃声音量可能有不同的最大值,因此您需要将它们归一化。为此使用 getStreamMaxVolume。

我以前没有做过,也没有编译过,但是代码应该是这样的

AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

// Get the current ringer volume as a percentage of the max ringer volume.
int currentVolume = audio.getStreamVolume(AudioManager.STREAM_RING);
int maxRingerVolume = audio.getStreamMaxVolume(AudioManager.STREAM_RING);
double proportion = currentVolume/(double)maxRingerVolume;

// Calculate a desired music volume as that same percentage of the max music volume.
int maxMusicVolume = audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
int desiredMusicVolume = (int)(proportion * maxMusicVolume);

// Set the music stream volume.
audio.setStreamVolume(AudioManager.STREAM_MUSIC, desiredMusicVolume, 0 /*flags*/);

关于android - 将初始音量设置为电话铃声音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10712615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com