Android 如何将Mediaplayer与电话音量同步?
我注意到,无论我设置手机的音量如何,在我的应用程序中点击按钮的声音都保持不变。我如何将其与手机的系统音量同步?这是我使用的代码格式Android 如何将Mediaplayer与电话音量同步?,android,android-mediaplayer,Android,Android Mediaplayer,我注意到,无论我设置手机的音量如何,在我的应用程序中点击按钮的声音都保持不变。我如何将其与手机的系统音量同步?这是我使用的代码格式 Mediaplayer buttonSoundClick; buttonClickSound = MediaPlayer.create(this, R.raw.button_click_sound); buttonClickSound.start(); buttonClickSound = MediaPlayer.create(this, R.ra
Mediaplayer buttonSoundClick;
buttonClickSound = MediaPlayer.create(this, R.raw.button_click_sound);
buttonClickSound.start();
buttonClickSound = MediaPlayer.create(this, R.raw.button_click_sound);
} private void prepareAsync() {
buttonClickSound.setAudioStreamType(AudioManager.STREAM_MUSIC);
}
@Override
public void onClick(View v) {
//Button Click Sound
buttonClickSound.start();
Android对于不同的流类型有不同的音量级别 覆盖onKeyDown并添加以下代码
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
return true;
default:
return false;
}
}
在此之后,尝试使用流类型,使其适合您的应用程序。可用的流类型有:
AudioManager.STREAM_MUSIC
AudioManager.STREAM_RING
AudioManager.STREAM_ALARM
AudioManager.STREAM_SYSTEM
AudioManager.STREAM_NOTIFICATION
或
您可以使用MediaPlayer.setAudioStreamTypeAudioManager.stream\u音乐直接设置MediaPlayer流类型
Buy,您必须在prepare或prepareAsync之前调用此方法,以便目标流类型在此后生效。您使用的音频流类型是什么?@pskink很抱歉,但我不知道这是什么意思。在哪里可以找到这些信息?在MediaPlayer API文档中?@pskink我不知道如何回答他的问题。如何找到我正在使用的音频流类型?我发布了与Mediaplayerok相关的唯一代码,因此您似乎正在使用默认的音频流类型,如果默认的不是您想要的,那么请设置您想要使用的音频流类型谢谢回复,但是在使用它之后,按钮ClickSound忽略我的手机音量,如何将它们同步到一起。@您在错误的位置调用setAudioStreamType。可以这样称呼它:buttonClickSound.setAudioStreamTypeAudioManager.STREAM_MUSIC;在调用buttonClickSound.start之前@“那孩子,你试过了吗?”贾兹兹,我没弄好。等我对安卓系统有了更多的了解后,我再试试。