car*_*erz 50 audio android android-audiomanager
我可以更改媒体音量吗?如何?到目前为止我用过这个:
setVolumeControlStream(AudioManager.STREAM_MUSIC);
Run Code Online (Sandbox Code Playgroud)
但是有一个搜索栏并希望改变媒体音量,而不是铃声音量.
那么有人可以告诉我如何只更改媒体音量,onCreate()然后我会修复搜索栏.
Oct*_*ean 85
正确的使用方法会被setStreamVolume您AudioManager.它可能看起来像这样
AudioManager audioManager =
(AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
[int value],
[if desired a flag]);
Run Code Online (Sandbox Code Playgroud)
标志的一个示例用法是在设置音量时发出蜂鸣声,以便用户可以听到结果.那个标志就是AudioManager.FLAG_PLAY_SOUND.
AudioManager.FLAG_SHOW_UI如果您不想播放声音但显示带有当前值的Toast,则可以使用.使用必须获得反馈.无论是听得见还是视觉无关紧要.
要获取最大的有效价值,为给定的流你只需要调用getStreamMaxVolume()的AudioManager,并得到一个整数回到它代表了音量......嗯最大有效值.
trg*_*lia 38
private AudioManager audio;
Run Code Online (Sandbox Code Playgroud)
在onCreate里面:
audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
Run Code Online (Sandbox Code Playgroud)
覆盖onKeyDown:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
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;
// Update based on @Rene comment below:
return super.onKeyDown(keyCode, event);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用以下代码使用SeekBar处理Volume:
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
SeekBar sbVolumeBooster = (SeekBar) findViewById(R.id.sbVolumeBooster);
sbVolumeBooster.setMax(audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC));
sbVolumeBooster.setProgress(audioManager.getStreamVolume(AudioManager.STREAM_MUSIC));
sbVolumeBooster.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
{
@Override
public void onStopTrackingTouch(SeekBar arg0)
{
}
@Override
public void onStartTrackingTouch(SeekBar arg0)
{
}
@Override
public void onProgressChanged(SeekBar arg0, int progress, boolean arg2)
{
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
progress, 0); // 0 can also be changed to AudioManager.FLAG_PLAY_SOUND
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66869 次 |
| 最近记录: |