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、ボリュームのあるトーストを表示するために使用できます。フラグが必要ない場合は、0 を渡すことができます。

于 2013-01-15T11:00:17.490 に答える