完成后,将MediaController和MediaPlayer返回到歌曲的开头

时间:2018-05-22 11:43:30

标签: java android mediacontroller

我已经使用MediaControll创建了MediaPlayer。它有效,但我想在完成后将MediaController和MediaPlayer返回到歌曲的开头。因此,当歌曲完成时,会有暂停按钮,并且仍然会显示最终位置的搜索栏。当歌曲结束时,我想设置搜索栏以开始播放位置并更改按钮以播放(因此用户可以点击它来重播此歌曲)。我和这位开发人员有同样的问题:Android MediaController End Of song。我应用了他的问题的解决方案,但仍然无法重置控制器。我的代码有什么问题?据我所知,我应该用onCompletion方法写一些东西。

 mPlayer = new MediaPlayer();
    mPlayer.setOnCompletionListener(this);
    controller = new MediaController(this){
        @Override
        public void show(int timeout) {
            super.show(0);
        }
    };
    listSongs.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            if (mPlayer != null) {
                mPlayer.release();
            }
            mPlayer = MediaPlayer.create(MainActivity.this, arrayList.get(position).getmSongResourceId());
            mPlayer.start();
            controller.show(0);
        }
    });

    controller.setMediaPlayer(this);

onCompletion方法

@Override
public void onCompletion(MediaPlayer mp) {
        mp.reset();
        controller.show(0);
}

感谢您的帮助。

0 个答案:

没有答案