Code Bye

关于android mediaplayer 多次运行后出现错误

public void voulce() {
if (STR.length() >= n * 3&&STR!=null) {
for (int k = 0; k < 2; k++) {
int x = 0;
for (int i = 0; i < n; i++) {
if (STR.subSequence(x, (x + 3)).equals(“00 “)) {
music = MediaPlayer.create(this,R.raw.music0);
music.start();
} else if (STR.subSequence(x, (x + 3)).equals(“01 “)) {
music = MediaPlayer.create(this,R.raw.music1);
music.start();
} else if (STR.subSequence(x, (x + 3)).equals(“02 “)) {
music = MediaPlayer.create(this,R.raw.music2);
music.start();
} else if (STR.subSequence(x, (x + 3)).equals(“03 “)) {
music = MediaPlayer.create(this,R.raw.music3);
music.start();
} else if (STR.subSequence(x, (x + 3)).equals(“04 “)) {
music = MediaPlayer.create(this,R.raw.music4);
music.start();
} else if (STR.subSequence(x, (x + 3)).equals(“05 “)) {
music = MediaPlayer.create(this,R.raw.music5);
music.start();
} else if (STR.subSequence(x, (x + 3)).equals(“06 “)) {
music = MediaPlayer.create(this,R.raw.music6);
music.start();
} else if (STR.subSequence(x, (x + 3)).equals(“07 “)) {
music = MediaPlayer.create(this,R.raw.music7);
music.start();
} else if (STR.subSequence(x, (x + 3)).equals(“08 “)) {
music = MediaPlayer.create(this,R.raw.music8);
music.start();
} else if (STR.subSequence(x, (x + 3)).equals(“09 “)) {
music = MediaPlayer.create(this,R.raw.music9);
music.start();
}
x += 3;
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
Thread.sleep(800);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}music.stop();
Log.i(“mediaplayer”, “music”+music);
music=null;
}
}
如题,这是本人的部分代码,开始运行时候是正常的,但是播放10多次之后就会报ERROR(1,-19)这样的错误,接着就不再继续播放了,网上有人说在start前面加stop和prepare,实测会出现error(0.38)错误,求高手看过来
PS:本人是用真机测试的!
解决方案

20

你播放一次创建一个Mediaplay,开了个线程,并没有关闭

10

对,县城不能重复start

20

切换播放之前记得reset,然后再设置播放路径,prepare.再play

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于android mediaplayer 多次运行后出现错误