Android:如何以编程方式设置MediaPlayer卷?

时间:2011-11-23 06:43:07

标签: java android media-player

如何以编程方式设置媒体播放器卷。我用它来报警。任何帮助都非常感谢,并提前感谢。

10 个答案:

答案 0 :(得分:43)

使用 AudioManager 可以控制媒体播放器的音量。

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 20, 0);

也来自MediaPlayer(但我没试过)

public void  setVolume  (float leftVolume, float rightVolume)

自:API级别1

设置此播放器的音量。建议使用此API来平衡应用程序中音频流的输出。除非您正在编写用于控制用户设置的应用程序,否则应优先使用此API,以设置特定类型的所有流的卷的setStreamVolume(int,int,int)。请注意,传递的卷值是原始标量。 UI控件应该以对数方式进行缩放。

<强>参数

leftVolume留下音量标量

rightVolume右卷标量

答案 1 :(得分:24)

希望这个帮助

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

提升音量

 audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                        AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);

降低音量

audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                        AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);

答案 2 :(得分:6)

setVolume课程中确实有MediaPlayer方法。见here

答案 3 :(得分:4)

隐藏音量控制UI:

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

For Volume UP

audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                    AudioManager.ADJUST_RAISE, 0);

降低音量

audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                    AudioManager.ADJUST_LOWER, 0);

答案 4 :(得分:2)

点击此处page。它解释得非常好。 基本上,除非您的应用程序是替换闹钟,否则您需要在“onCreate()”函数中进行以下调用:

setVolumeControlStream(AudioManager.STREAM_MUSIC);

通过这种方式,您可以使用硬件按钮创建应用程序的音量。

答案 5 :(得分:0)

请记住设置左右扬声器音量。

if (System.nanoTime() == alarm){
    yourMediaPlayer.setVolume(volume, volume)}
}

答案 6 :(得分:0)

试试这个

protected static void setVolume(int volume) {
        currentVolume = volume;
        {
            if (volume == 1) {
                volume = 2;
            }
            try {
                float vol = ((float) volume / CONSTANT.SYSTEM_MAX_VOLUME);
                mediaPlayer.setVolume(vol, vol);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    }

答案 7 :(得分:0)

以下代码将音量设置为最高级别(getStreamMaxVolume())。

AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_MUSIC,am.getStreamMaxVolume(AudioManager.STREAM_MUSIC),0);

答案 8 :(得分:0)

您可以使用Kotlin执行以下操作,此代码将检查媒体音量是否超过设备最大音量的20%,并将其降低至仅为20%。

    val audio = this.getSystemService(Context.AUDIO_SERVICE) as AudioManager
    val level = audio.getStreamVolume(AudioManager.STREAM_MUSIC)

    val maxVolume = audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC)
    val percent = 0.2f
    val twintyVolume = (maxVolume * percent).toInt()

    if ( level > twintyVolume) {
        Toast.makeText(this,"audio level is $level", Toast.LENGTH_LONG).show()
        audio.setStreamVolume(AudioManager.STREAM_MUSIC,twintyVolume,0)
    }

答案 9 :(得分:0)

代码:

AudioManager mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
try 
 {        
   float count = 100 * 0.2f;
   Log.d("--count_float", count + "");
   Log.d("--count_final", Math.round(count) + "");
   Log.d("--count_volume", new 
   PreferenceMotionSensor(mContext).getStreamVolume());
   mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, Math.round(count), 0);
 } 
catch (Exception e) 
 {
  Log.d("--Error", e.getMessage());
 }

输出

D/--count_float: 20.0
D/--count_final: 20
D/--count_volume: 100