我需要写一个非常简单的android应用程序,但我有一个严重的问题。
下面是我的类:
package com.music.playa;
import java.util.Random;
import android.app.Activity;
import android.content.Context;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class PlayMusic extends Activity {
MediaPlayer mediaPlayer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void playSound() {
try {
mediaPlayer.stop();
mediaPlayer.reset();
mediaPlayer.release();
mediaPlayer = null;
} catch (Exception ex) {
}
String[] sounds = { "sound1", "sound2", "sound3" };
mediaPlayer = null;
int path = getResources().getIdentifier(
sounds[new Random().nextInt(sounds.length)], "raw",
getPackageName());
mediaPlayer = MediaPlayer.create(this, path);
mediaPlayer
.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
// do something...
}
});
mediaPlayer.setVolume(1, 1);
mediaPlayer.start();
}
}问题是,当我一直按下按钮调用PlaySound函数时,过了一段时间(大约按下按钮40-50次),控制台抛出了很多错误:
05-28 12:56:00.202: E/MediaPlayer(755): error (-38, 0)
05-28 12:56:01.153: E/MediaPlayer(755): error (-19, 0)
05-28 12:56:01.153: E/MediaPlayer(755): Error (-19,0)声音就会停止播放。
我该怎么办?
Android SDK 2.3.3
发布于 2012-05-28 22:26:02
在设置按钮的onClick侦听器之前,应将媒体播放器实例创建为PlayMedia类的字段并对其进行初始化。
在onResume()中准备它,在onPause()中释放它。您的按钮唯一需要做的是停止/启动。
https://stackoverflow.com/questions/10785878
复制相似问题