1

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

如果我以这种方式实现onPauseonStop:

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

做这项工作。仍然是菜鸟... :) 谢谢

4

1 回答 1

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


                }
于 2013-08-06T07:56:30.227 回答