【问题标题】:Media Player Error媒体播放器错误
【发布时间】:2012-05-18 13:38:43
【问题描述】:

这是我用于控制两个搜索栏以在媒体播放器中为两个同时播放的声音设置音量控制的代码。但是在seekbar的进度变化时声音会打开和关闭,在进度变化时不会频繁增加或减少音量。我哪里错了?

audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

        int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
        int curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);

        volume2 = (SeekBar)findViewById(R.id.volbar2);
        volume1 = (SeekBar)findViewById(R.id.volbar);


        volume1.setMax(maxVolume);
        volume2.setMax(maxVolume);
        volume1.setProgress(curVolume);
        volume2.setProgress(curVolume);

        volume1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {


               }
            @Override
            public void onStartTrackingTouch(SeekBar arg0) {

            }
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean arg2) {

                if(seekBar.equals(volume1)){

                    mediaPlayer.setVolume(progress,progress);

                    Toast.makeText(getApplicationContext(), ""+progress+progress, 1).show();

                      }

            }
            });

        volume2.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

            public void onStopTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub

            }

            public void onStartTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub

            }

            public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {
                // TODO Auto-generated method stub
                if(seekBar.equals(volume2)){ 
                     mediaPlayer2.setVolume(progress,progress);
             }

            }
        });

【问题讨论】:

  • 尝试设置您的媒体播放器音量,例如:- mediaPlayer.setVolume((progress/100.0f),(progress/100.0f));。我不确定,但你可以做这样的事情希望它有效。
  • 您好 Deepak,您的帖子对我很有帮助,但是当我减少搜索栏然后音量减小时会产生另一个问题,但是在进度增加时它不会增加实际状态下的音量...我没有了解这种情况发生的方式..

标签: android media-player android-audiomanager


【解决方案1】:

我认为 mediaplayer.setVolume() 希望值介于 0.0f 和 1.0f 之间,因此它是相对于 audiomanagers 音量的音量

【讨论】:

    【解决方案2】:

    @Ankush 嗨,实际上我使用以下代码为我的项目解决了这个问题:

    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        Log.w("MovingProgressBar","Progress change to: " + progress);
        try {
            if (seekBar == seekMusic){
                musicCurrentVol = (float) (progress/100.0);
                musicPlayer.setVolume(musicCurrentVol, musicCurrentVol);
            } else if (seekBar == seekIns) {
                insCurrentVol = (float) (progress/100.0);
                insPlayer.setVolume(insCurrentVol, insCurrentVol);
            } 
        } catch (Exception e) {
            Log.w("MovingProgressBar:", "Progress not change: " + e);
        }
    }
    

    这对我有用。希望这也对你有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 1970-01-01
      相关资源
      最近更新 更多