33

我正在为 android 编写一个应用程序,它可以调高音量并播放一首歌曲 45 秒然后停止。效果很好,但是我只能将音量调到 50%,有没有办法使用 setVolume() 将音量调到 100%?

这是我的代码:

final MediaPlayer mp = MediaPlayer.create(context, R.raw.sound_file_1);

//plays eye of the tiger for 45 seconds
if (messages.contains("MUSIC ONLY")){

    //turn up the volume
    mp.setVolume(20, 20);
    mp.start();

    //play ring tone for 45 seconds
    new Timer().schedule(new TimerTask() {
        @Override
        public void run() {
            mp.stop();
        }
    }, 45000);
}
4

1 回答 1

73

您可以使用以下代码片段,使用AudioManager

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

am.setStreamVolume(
    AudioManager.STREAM_MUSIC,
    am.getStreamMaxVolume(AudioManager.STREAM_MUSIC),
    0);

getStreamMaxVolume()这会将音量设置为STREAM_MUSIC(例如播放的歌曲)的最大音量 ( )。对于其他类型的声音,使用不同的值,例如STREAM_RING等。

于 2013-03-27T22:15:19.853 回答