不知道为什么不行,logcat没有记录错误,但是听不到声音。
public static void DeclararSonido(int numero, Context contexto){
switch(numero){
case 0:
mp = MediaPlayer.create(contexto, R.raw.alan);
break;
}
}
public static void TocarPiedra( int posicion, Context contexto){
DeclararSonido(posicion, contexto);
mp.start();
mp.stop();
mp.release();
}
public static void TocarSirena(Context contexto){
MediaPlayer mp2= MediaPlayer.create(contexto, R.raw.doh);
mp2.start();
mp2.stop();
mp2.release();
}
如果我删除 mp2.stop();
和 mp2.release();
AND mp.stop();
和 mp.release();
应用播放声音,但文件未释放...
最佳答案
您肯定不想立即开始然后停止..
问题是你正在一个接一个地执行它们:
mp.start(); // starts playback
mp.stop(); // .. then stops immediately ..
mp.release();
你应该调用开始,然后当声音播放完毕,释放。您可以使用 Completion event连接一个监听器并在那里释放:
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
public void onCompletion(MediaPlayer player) {
player.release();
}
})
关于java - 如何让 android mediaplayer 播放声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16280751/