0

나는 MediaPlayer가있는 서비스를 가지고 있습니다. 활동에서 플레이어의 볼륨을 변경해야합니다. 어떤 아이디어? 오후 8시 30 분 P.S. 나는 너의 도움이 필요하다. P.P.S.안드로이드 - 서비스, MediaPlayer 및 setVolume

+0

탐색 표시 줄을 사용합니까 ?? –

+0

@ 라니, 예, 저는 활동에서 SeekBar를 사용하고 있습니다. 그것의 수신기에서, onStopTrackingTouch()에서 MediaPlayer의 볼륨을 변경해야합니다. – enCrypter

답변

1

를 참조 .. 당신을 수행 할 수 있습니다 도움이 될하시기 바랍니다, 내 영어 죄송합니다 MediaPlayer의 볼륨을 설정하는 메소드를 정의하고 Activity에서 Service에 바인딩하고 직접 메소드를 호출하십시오. Service에 바인딩하는 방법은 "로컬 서비스 샘플"here을 참조하십시오. Service에 바인딩하면 수신 한 IBinderService 클래스의 인스턴스로 전송하여 메소드를 사용할 수 있습니다.

이없는 경우 로컬 Service 또는 당신이 별도의 스레드에서 실행 한 경우, 당신은 Messenger/Handler 또는 Intent를 사용을 통해 Service와 통신해야합니다. 이전과 같은 링크에 "원격 메신저 서비스 샘플"이 있습니다.

1

이, 그것은 로컬 Service이며 다른 스레드로 실행하도록 강제하지 않은 경우

protected static void setVolume(int volume) { 
     currentVolume = volume; 
     { 
      if (volume == 1) { 
       volume = 2; 
      } 
      try { 
       float vol = ((float) volume/CONSTANT.SYSTEM_MAX_VOLUME); 
       mediaPlayer.setVolume(vol, vol); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 

    } 

는 또한 this

+0

빠른 답장을 보내 주셔서 감사합니다! 그러나이 코드를 배치해야 할 때 어떻게이 메서드를 호출할까요? – enCrypter

+0

어디서 볼륨을 변경 하시겠습니까 ?? –

+0

이 항목을 확인하십시오 http://stackoverflow.com/a/11095807/2591002 –

관련 문제