我與MediaPlayer的android上的問題時不打,即時通訊開始使用自定義的執行者,我有所有的方法來使用媒體播放器,暫停,播放服務等的Android的MediaPlayer從活動切換到碎片
播放器在活動中工作正常,但它有一個按鈕可以最大限度地減少它,因爲您可以在每個活動中持續監聽音頻,因此我必須在BaseActivity上創建的BaseFragment上啓動或恢復音頻,但不會恢復音頻。
當我關閉媒體播放器的活動我暫停的球員,我註銷喜歡這個
AudioPlayerService.unRegister(this);
這是玩家服務如何在BaseFragment連接到服務
//Connection with a service
private ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
Log.d(">>>>>", "Service starts on fragment");
AudioPlayerService.LocalBinder mLocalBinder = (AudioPlayerService.LocalBinder) service;
audioServiceObject = mLocalBinder.getService();
mBounded = true;
if (audioServiceObject != null) {
audioServiceObject.startAudioPlayer(audio_path, media_length);
AudioPlayerService.register(this);
audioServiceObject.pauseAudioPlayer();
}
}
@Override
public void onServiceDisconnected(ComponentName name) {
Log.d(">>>>>", "Service end");
mBounded = false;
audioServiceObject = null;
}
};
IM我打電話給BaseActivity上的底層播放器
PlayerBottom newAudioPlayer = new PlayerBottom();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.audioPlayerFrame, newAudioPlayer);
transaction.commit();
im即時發送底層球員是活動最小時剩下的位置,所以我打電話給MediaPlayer.seekto並通過其剩下的位置,以便從那裏開始。
即時通訊開始與bindService(),所以我必須用startService啓動並綁定到它? –
是的。如視頻中所述,如果您關心在某個時刻停止服務,請確保尊重您的'startService()','bindService()','unbindService()','stopService()'的順序。 – Distwo
我在一個活動上使用startService(),後來我必須在一個片段中綁定它,我如何獲得該片段上該服務的引用? –