2013-08-05 25 views
1

我的应用程序有一个按钮,当点击时播放一个短mp3文件。我想正确发布和重新使用mediaplayer对象(所以它不会干扰其他应用程序),例如,用户接到电话,或正在点击主页按钮。如何在发布之后重新使用mediaplayer()和null?

如果我实现和onSto P此方式:

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

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

那我怎么再利用MP时被调用onRestart?这是否是正确的方法?也许我应该使用mp.stop()

谢谢

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

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

做这项工作。还是一个菜鸟... :)感谢

回答

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


       } 
+0

我一定要实现'OnCompletionListener'为了得到'onCompletion'调用?谢谢 – Kfir

+1

是添加一个onCompletionListener。 –

+0

它的工作原理,谢谢! – Kfir

相关问题