2013-02-19 91 views
0

您好我正在嘗試編寫一個Android應用程序,用於播放MediaPlayer中的MP3文件,以便在用戶決定打開其他活動或手機屏幕鎖定時,音頻文件將繼續播放。我還想給用戶一個MediaController小部件來播放,停止,暫停,快退或快進。我已經有一個應用程序可以播放服務中的MP3文件,但我現在想要添加MediaController,而且我無法理解這是如何在服務中完成的。我想我必須將服務「綁定」到我的活動中,但我也不確定這是如何完成的。服務可以實現MediaPlayer.OnPreparedListener和MediaController.MediaPlayerControl嗎?

所以我的問題是:

1)如何綁定的服務和活動?

2)如何在服務中實現MediaPlayer和MediaController?

謝謝!

回答

0

對於MediaPlayer的,研究這些文檔:http://developer.android.com/reference/android/media/MediaPlayer.html

如果這是你自己的服務,您的活動可以調用startService(new Intent(this, MyService.class))。這將觸發onStartCommand回調(即使服務已經啓動)。當您希望服務停止並隨後銷燬時,您的活動也可以撥打stopService(intent)。服務也可致電stopSelf()

「綁定」的服務通常是指屬於其他流程,允許他人訪問調用跨越進程邊界方法服務。除非你想要這麼做,否則你可能會忽略這一點。

+0

我已經能夠創建具有實現媒體播放器的服務的應用程序和工作正常,但我希望能夠給用戶提供的MediaController控制音頻文件的播放。那麼初始化MediaController在哪裏?在服務的'onStartCommand'或者活動'onCreate'中? – 2013-02-19 05:05:48

+0

您可以將MediaController放入您的活動中並響應按鈕點擊以啓動/停止您的服務。如果您希望用戶在執行其他任務時能夠播放媒體,您應該在通知面板中留下持續通知,以便用戶可以輕鬆返回活動以訪問媒體控件。在JellyBean上,您還可以利用新的Notification API,並使用RemoteViews將一些控件放置在通知本身中。 – Karakuri 2013-02-19 05:10:44