Android:在UI上显示媒体卷滑块

时间:2012-02-28 19:06:18

标签: android android-mediaplayer

更新

所以我使用seekbar和Seekbar并连接听众

onCreate方法:

audio = (AudioManager)  this.getSystemService(Context.AUDIO_SERVICE); 
volume_label.setText(String.valueOf(volume));*/ 
volumebar.setMax(audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC)); 
volumebar.setProgress(60); 
volumebar.setOnSeekBarChangeListener(VolumeChange); 

this.setVolumeControlStream(AudioManager.STREAM_MUSIC);


private OnSeekBarChangeListener VolumeChange = new  OnSeekBarChangeListener()
    { 
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
        { 
            int index = seekbar.getProgress(); 
             audio.setStreamVolume(AudioManager.STREAM_MUSIC, index, 1); 
           //  volume_label.setText(String.valueOf(index)); 
        } 
        public void onStartTrackingTouch(SeekBar seekBar) 
        {
            //
        } 

        public void onStopTrackingTouch(SeekBar seekBar) 
        {
            //
        } 
    };

但我可以使用导引头,但不影响音频声音,尝试增加和减少声音但没有效果,我还应该实施什么?

更新结束

我正在开发一个MediaPlayer,它有播放/暂停/上一个/下一个/搜索者,一切都按预期工作,我打算添加volume slider,这样用户可以更改音量,而不是使用硬件音量增大/减小按钮

我尝试了这段代码,但没有像在UI上那样显示。

在onCreate方法中:

Activity.setVolumeControlStream(AudioManager.STREAM_MUSIC)  

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 40, AudioManager.FLAG_PLAY_SOUND);

1 个答案:

答案 0 :(得分:6)

希望这有助于其他......这是我能够实现的目标:

  leftAm = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
    int maxVolume = leftAm.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
    int curVolume = leftAm.getStreamVolume(AudioManager.STREAM_MUSIC);
    SeekBar volControl = (SeekBar)findViewById(R.id.leftVolume);
    volControl.setMax(maxVolume);
    volControl.setProgress(curVolume);
    volControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {


    @Override
    public void onStopTrackingTouch(SeekBar arg0) {
     // TODO Auto-generated method stub
    }

    @Override
    public void onStartTrackingTouch(SeekBar arg0) {
     // TODO Auto-generated method stub
    }

    @Override
    public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
     // TODO Auto-generated method stub
     leftAm.setStreamVolume(AudioManager.STREAM_MUSIC, arg1, 0);
    }
   });  

.XML:

<SeekBar
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/volumebar"
            android:max="100"
            android:paddingBottom="10dip"/>