如何在release()和null之后重新使用媒体播放器?

时间:2013-08-05 21:09:37

标签: android-mediaplayer activity-lifecycle

我的应用程序有一个按钮,单击时播放短mp3文件。我想正确地释放和重用媒体播放器对象(因此它不会干扰其他应用程序),例如用户接到电话,或点击主页按钮。

如果我以这种方式实施onPauseonSto

@Override
public void onPause() {
    super.onPause();
    mp.release();
    mp = null;
}

@Override
public void onStop() {
    super.onStop();
    mp.release();
    mp = null;
}

然后在调用onRestart时如何重新使用mp?这是正确的方法吗?也许我应该使用mp.stop()

感谢

编辑:我自己找到了解决方案。再次重新创建对象:

@Override
publib void onResume() {
    super.onResume();
    mp = new MediaPlayer();
}

完成这项工作。还是一个菜鸟...... :)谢谢

1 个答案:

答案 0 :(得分:1)

使用onCompletion

@Override
                                public void onCompletion(MediaPlayer mp) {
                                    // TODO Auto-generated method stub
                                    myStereo.setLooping(true);
                                    myStereo.release();
                                    try {
                                        myStereo.prepare();
                                    } catch (IllegalStateException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                    myStereo.start();


                }