下面的代码不会破坏方法或循环,而是永远循环播放音乐。当(n==maxCount)
它应该改变 OnCompletionListener 的值n=1
并从 OnCompletionListener 出来时,即音乐应该停止播放,这就是我想要的。
我怎样才能解决这个问题 ?
protected void playsound() {
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
if (n<=maxCount) {
mp.start();
n++;
if(n==maxCount){
n=1;
return;
}
}
}
});
mp.start();
maxCount 值取决于 Spinner 值并n=1
在全局范围内声明。
下面是它完美运行的更正代码,下面的代码有什么错误吗?因为一些用户说“使用此代码,您将面临错过退出条件的危险,因为如果您输入时 n == maxCount,则在您 n++ 之后 n > maxCount。简而言之,它会一直运行直到您达到 maxint,然后它会崩溃”?
protected void playsound() {
// TODO Auto-generated method stub
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
if (n<=maxCount) {
mp.start();
n++;
if(n==maxCount){
n=1;
mp.pause();
mp.seekTo(0);
}
}
}
});
mp.start();
}