我希望以编程方式使用系统音量级别,即在任何应用程序之外使用硬件键设置的级别。 我尝试使用以下方法,但它没有做任何事情
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();
我需要改变什么?
答案 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);