如何在android上以编程方式将音量调到最大?

Sar*_*rah 32 android volume android-music-player

我正在为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);
}
Run Code Online (Sandbox Code Playgroud)

kam*_*uel 67

您可以使用AudioManager使用以下代码段:

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

am.setStreamVolume(
    AudioManager.STREAM_MUSIC,
    am.getStreamMaxVolume(AudioManager.STREAM_MUSIC),
    0);
Run Code Online (Sandbox Code Playgroud)

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

  • @Sarah - 实际上是`Context.getSystemService()`.所以你需要有一个`Context`对象(例如``Activity`或`Service`.你从哪个类调用它? (6认同)
  • @RuchirBaronia - 你试过`am.setStreamVolume(...,am.getStreamMaxVolume(...)/ 2,...);` - 换句话说,将最大音量除以2?`.getStreamMaxVolume()`返回一个`int`,所以它应该可以正常工作. (2认同)