如何在“活动”发布时一次播放一首音乐

时间:2016-06-30 19:15:09

标签: android media-player

每当我点击音乐时,我想发布一个播放所选歌曲的活动,但是我似乎无法做到这一点。我尝试了很多代码,但都无济于事。

以下是将启动活动的按钮

    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();
            }
    ...
}

编辑:该应用程序一次播放两首歌曲,而不是只播放选定的歌曲。

1 个答案:

答案 0 :(得分:0)

您应该对MediaPlayer状态事务非常小心,请检查diagram

例如,当您调用stop()时,在再次准备MediaPlayer之前,无法再次调用start()。

在您的情况下,当主机Activity被销毁(例如屏幕旋转)时,您似乎没有释放MediaPlayer,可以这样做

@Override
public void onDestroy() {
    if (mp != null)
        mp.release();
    super.onDestroy();
}