每当我点击音乐时,我想发布一个播放所选歌曲的活动,但是我似乎无法做到这一点。我尝试了很多代码,但都无济于事。
以下是将启动活动的按钮
lv.setOnItemClickListener(new AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView<?> adapter, View v, int position, long id){
Intent i = new Intent(getActivity(), MusicPlaying.class);
i.putExtra("song", position);
startActivity(i);
}
});
以下是从上述按钮接收意图的活动。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.music_playing);
value = getIntent().getIntExtra("song", 0);
...
if (mp.isPlaying()) {
mp.stop();
} else {
playMusic();
}
...
}
编辑:该应用程序一次播放两首歌曲,而不是只播放选定的歌曲。
答案 0 :(得分:0)
您应该对MediaPlayer状态事务非常小心,请检查diagram。
例如,当您调用stop()时,在再次准备MediaPlayer之前,无法再次调用start()。
在您的情况下,当主机Activity被销毁(例如屏幕旋转)时,您似乎没有释放MediaPlayer,可以这样做
@Override
public void onDestroy() {
if (mp != null)
mp.release();
super.onDestroy();
}