1

我做了一个收音机播放器,但搜索栏没有调高或调低音量,我找不到为什么会这样。

final SeekBar volume=(SeekBar)findViewById(R.id.bar);
audMan = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
int maxVolume = audMan.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
int curVolume = audMan.getStreamVolume(AudioManager.STREAM_MUSIC);
mplayer = new MediaPlayer();
mplayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

volume.setMax(maxVolume);
volume.setProgress(curVolume);
song_title=(TextView)findViewById(R.id.txt);
seekBarValue=(TextView)findViewById(R.id.textView1);
Value=(TextView)findViewById(R.id.seekbarvalue);

song_title.setTextColor(Color.CYAN);
seekBarValue.setTextColor(Color.CYAN);
Value.setTextColor(Color.CYAN);

volume.setProgress(0);
volume.incrementProgressBy(5);
volume.setMax(100);

volume.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener()
{

    public void onStopTrackingTouch(SeekBar bar)
    {
        int value = bar.getProgress(); // the value of the seekBar progress
    }

    public void onStartTrackingTouch(SeekBar bar)
    {

    }

    public void onProgressChanged(SeekBar bar,
            int paramInt, boolean paramBoolean)
    {
        seekBarValue.setText("" + paramInt + "%"); // here in textView the percent will be shown
    }
});
4

1 回答 1

0

您必须在某个时候调用AudioManger.setStreamVolume() ...

public void onProgressChanged(SeekBar bar,
                int paramInt, boolean paramBoolean)
        {
            seekBarValue.setText("" + paramInt + "%"); // here in textView the percent will be shown
            AudioManager audioManager = (AudioManager)Context.getSystemService(Context.AUDIO_SERVICE);
            audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,paramInt,flags);
        }

flags只是要使用的标志。例如AudioManager.FLAG_SHOW_UI,可用于显示带有音量的 Toast。如果你不想要标志,你可以传递 0。

于 2013-01-15T11:00:17.490 回答