如何以编程方式获取系统卷

时间:2014-10-02 07:51:30

标签: android android-audiomanager

我希望以编程方式使用系统音量级别,即在任何应用程序之外使用硬件键设置的级别。 我尝试使用以下方法,但它没有做任何事情

        MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.notif);
        AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
        int volume_level = am.getStreamVolume(AudioManager.STREAM_SYSTEM);
        mediaPlayer.setAudioStreamType(volume_level);
        mediaPlayer.start();

我需要改变什么?

2 个答案:

答案 0 :(得分:0)

您必须更改此行

 mediaPlayer.setAudioStreamType(volume_level);

对此:

 mediaPlayer.setAudioStreamType(AudioManager.STREAM_SYSTEM);
  

setAudioStreamType()

用于标识音频流的类型

AudioManager.STREAM_ALARM 用于报警

AudioManager.STREAM_DTMF 用于触摸声音

AudioManager.STREAM_MUSIC 用于音乐

AudioManager.STREAM_NOTIFICATION 用于通知

AudioManager.STREAM_RING 用于电话铃响

AudioManager.STREAM_SYSTEM 用于系统声音

AudioManager.STREAM_VOICE_CALL 用于通话

答案 1 :(得分:-1)

请参考官方文档here来设置或获取Android设备的系统卷。

要将音量级别设置为20,您可以使用以下代码:

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