我有一個服務,在Android中開始播放背景中的MP3流。有一個菜單活動,包括頻道選擇和播放器活動,播放器會開始播放通過按鈕點擊選擇的MP3。 它使用MediaPlayer類。這是URL的開始方式。在Android的MP3服務中更改URL MediaPlayer
mp3Service.playSong(getBaseContext(),url);
現在,當回到帶有URL的菜單時,我想更改URL播放。我不想停止服務,只改變它的URL。可能嗎?我已經閱讀了MediaPlayer的文檔,但不知道該怎麼做,嘗試了一些變體。
如何切換到另一個URL? mp3Service.pauseSong(getBaseContext());
然後停止,並mp3Service.playSong(getBaseContext(),newurl)?
////////////////////////////// PART OF THE CLASS
public String currenturl="";
public void playSong(Context c, String url) {
if (currenturl.equals(""))
{
if(!created){
this.mplayer = MediaPlayer.create(c, Uri.parse(url));
created = true;
currenturl=url;
}
this.mplayer.start();
}
else
{
if (!currenturl.equals(url))
{
if(!created){
this.mplayer.stop();
this.mplayer = MediaPlayer.create(c, Uri.parse(url));
created = true;
currenturl=url;
}
this.mplayer.start();
}
};
}
public void pauseSong(Context c) {
this.mplayer.pause();
}
//
public void stopSong(Context c) {
this.mplayer.stop();
}
沒那麼容易......
對我來說這似乎很好,儘管你也可以在不調用暫停的情況下調用stop。您是否遇到這種方法的任何問題?你絕對不需要停止服務。您也可以使用'setDataSource()' –
重複使用MediaPlayer對象我之前的所有嘗試(不同)都不成功。現在我正在努力做準確。問題也在於確定點擊的網址是否是新的。如果否,我們繼續玩,如果是的話,玩家必須停止。現在這個劇本在clicklistener上,但我希望它能夠在創建時開始活動。將嘗試... – Tramway11
好的,這不是你的問題。我會將當前播放的URL作爲String存儲在我的服務中,然後我可以輕鬆地檢查是否有新的'.equals()'當前的URL。 –