我正在学习 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;
}
}