2012-05-18 2 views
0

두 개의 동시 재생 사운드를 미디어 플레이어에서 볼륨 컨트롤을 설정하기 위해 두 개의 탐색 모음을 제어하는 ​​코드입니다. 그러나 탐색 바의 진행 변화에 따라 소리가 켜지거나 꺼지는 경우 진행률 변경시 음량이 자주 증가하거나 감소하지 않습니다. 내가 어디서 잘못한거야?미디어 플레이어 오류

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); 
      } 

      } 
     }); 
+0

미디어 플레이어 볼륨을 다음과 같이 설정하십시오 :'mediaPlayer.setVolume ((progress/100.0f), (progress/100.0f));'. 나는 잘 모르지만 당신은이 희망과 같은 것을 할 수 있습니다. – Deepak

+0

안녕하세요 Deepak 귀하의 게시물은 나를 위해 도움이되었지만 다른 문제를 만들 때 검색 막대를 줄이면 볼륨이 감소하지만 진행 상태가 실제 상태에서 볼륨이 증가하지 않습니다 ... 나는 이런 식으로 이해합니다. –

답변

0

은 내가 mediaplayer.setVolume()가 audiomanagers 볼륨

0

@Ankush 안녕에 대한 상대 볼륨이 실제로 내가 사용 내 프로젝트에 대해이 문제를 해결 그것 때문에 0.0f로와 1.0F 사이 값을 가지고 싶어 생각 다음 코드 :

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); 
    } 
} 

이 작품은 나를 위해 작동합니다. 희망이 당신을 위해 또한 작동합니다.