Java MediaPlayer在循环中的应用
问题: 我的代码有问题。我想循环我的MediaPlayer,但当我使用while循环时,MediaPlayer正在播放,但应用程序被冻结。我知道,mediaplayer有Java MediaPlayer在循环中的应用,java,android,Java,Android,问题: 我的代码有问题。我想循环我的MediaPlayer,但当我使用while循环时,MediaPlayer正在播放,但应用程序被冻结。我知道,mediaplayer有setLooping方法,但我必须使用while循环,因为我需要更改代码中的声音 有人知道它的解决方案吗?谢谢 代码: public void play() { while(true) { if (player == null) { player =
setLooping
方法,但我必须使用while循环,因为我需要更改代码中的声音
有人知道它的解决方案吗?谢谢
代码:
public void play() {
while(true) {
if (player == null) {
player = MediaPlayer.create(context, R.raw.zvuk);
player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
stopPlayer();
}
});
}
player.start();
}
}
public void stopPlayer() {
if (player != null) {
player.release();
player = null;
}
}
}
您使用的是无限循环,它永远不会结束。将代码替换为以下内容:
public void play() {
if (player == null) {
player = MediaPlayer.create(context, R.raw.zvuk);
player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// play again or write your logic for repeat
play();
}
});
}
player.start();
}
public void stopPlayer() {
if (player != null) {
player.release();
player = null;
}
}