通过将MediaPlayer设置为等待完成,为什么android应用程序在while循环后没有响应?

时间:2014-09-19 05:01:38

标签: android android-mediaplayer

我不确定错误是因为我有闹钟还是循环:

MediaPlayer mpChange;
MediaPlayer saved;
mpChange = MediaPlayer.create(this, R.raw.change);
saved = MediaPlayer.create(this, R.raw.saved);

当我添加一个用户时,我调用了一个函数,在里面我通知用户消息已保存:

    saved.start();

之后,我检查用户是否具有特殊含义,并再次通知用户:

      else
      {

          /*Implement Audio Change*/
          while(saved.isPlaying() == true)
          {
             //Nothing except wait
              System.out.println("looop");
          }
          //saved.stop();
          System.out.println("finished");
          mpChange.start();
      }

代码工作正常,我的声音之间没有任何错误或冲突。但是,我在我的应用程序中遇到错误:

  

应用程序没有响应。你想关闭吗?

我不确定它是while循环还是MediaPlayer。

最后的输出是:

looop
looop
looop
looop
finished

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

saved.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    public void onCompletion(MediaPlayer mp) {
        mpChange.start();
    }
});

try this code in else part remove while loop