我正在为Soundboard编码,当你在声音上点击20次以上时我遇到了问题。
首先我收到MediaPlayer错误(-19 0),你听不到任何声音。我知道这是我的记忆。 所以当我尝试添加Release();它完全没有声音。
这是一个播放声音的按钮:
public void click7(View v) {
MediaPlayer mp = MediaPlayer.create(NewActivity3.this, R.raw.hahah);
mp.start();
}
我一直试图发布,然后没有声音:
public void click7(View v) {
MediaPlayer mp = MediaPlayer.create(NewActivity3.this, R.raw.hahah);
mp.start();
mp.stop();
mp.reset();
mp.release();
}
我做错了什么?
答案 0 :(得分:1)
使用以下代码
MediaPlayer mp=MediaPlayer.create(NewActivity3.this, R.raw.hahah);
public void click7(View v) {
if(mp!=null ){
mp.reset();
mp.prepare();
mp.start();
}
每当你按下按钮而你想播放声音文件时,这段代码对此非常有用。
答案 1 :(得分:0)
当您使用发布功能时,MediaPlayer会清除内存中的所有内容。
释放与此MediaPlayer对象关联的资源。当您使用MediaPlayer 时,将此方法称为被认为是一种很好的做法。特别地,每当应用程序的活动暂停(其的onPause()方法被调用),或停止(其的onStop()方法被调用),此方法应被调用以释放MediaPlayer对象,除非应用程序有一个特殊的需要保持对象周围。除不必要的资源(如存储器和编解码器的实例)被保持,不调用此方法,如果立即MediaPlayer对象不再需要也可能导致连续的电池消耗为移动设备,以及重放失败用于如果其他应用程序不设备支持相同编解码器的多个实例。即使支持相同编解码器的多个实例,当同时使用不必要的多个实例时,也可能预期性能下降。