1

我正在学习 Android 应用程序开发,并尝试创建一个歌曲应用程序。

问题:

我有两个活动,A:songslist & B:MediaPlayer

B 通过播放远程歌曲mp.prepareAsync();并在播放器准备好时启动播放器。

即使我转移到其他活动或打开任何其他应用程序,我也想继续播放这首歌。

但是问题来了,当歌曲正在运行时,我回去选择新歌曲,然后 oncreate 活动 B 它开始流式传输并播放新歌曲,因为旧歌曲仍在运行。

我的代码:

public void Play() {
if(mp.isPlaying())
{   
 releaseMediaPlayer();
 Log.d("MediaPlayer", "Player is already running release it first");
}

mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
URL = BASE_URL + album_files[songIndex];
mp.setDataSource(URL);
mp.prepareAsync();

btnPlay.setImageResource(R.drawable.btn_pause);
songTitleLabel.setText("Loading track, please wait....");

}
private void releaseMediaPlayer() {
    if (mp != null) {
        if(mp.isPlaying()) {
            mp.stop();
        }
        Log.d("MediaPlayer", "Player is released");

        mp.release();
        mp = null;
    }
}
4

2 回答 2

0

除了播放列表和媒体播放器活动之外,您还应该有一个播放音乐的服务。即使您退出程序,服务也会播放音乐,并且您可以拥有一个小部件来控制播放音乐。

于 2013-10-19T08:08:06.983 回答
0

试试这个。使用答案,您可以制作后台服务,也可以不使用后台服务。祝你好运

于 2013-10-19T08:37:57.847 回答