2013-10-19 77 views
0

我有一個與MediaPlayer的服務。從活動我需要更改播放器的音量。有任何想法嗎? P.S.我非常需要你的幫助 P.P.S.對不起,我的英語水平,請Android - 服務,MediaPlayer和setVolume

+0

使用seek bar? –

+0

@Rani,是的,我在Activity中使用了SeekBar。在它的監聽器中,在onStopTrackingTouch()我需要更改MediaPlayer的音量 – enCrypter

回答

1

如果是本地Service和你沒有迫使它運行到另一個線程,你可以定義一種方法來設置MediaPlayer的音量,從Activity綁定到Service,並直接調用該方法。請參閱「本地服務示例」here,瞭解如何綁定到Service。一旦綁定到Service,您可以將收到的IBinder轉換爲Service類的實例以使用其方法。

如果不是本地Service或者如果你已經是在一個單獨的線程中運行,則需要通過Messenger/Handler或使用IntentService溝通。在以前的同一鏈接中有一個「遠程Messenger服務示例」。

1

這可以幫助你..

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 –