【问题标题】:OnCompletion listener with MediaPlayer使用 MediaPlayer 的 OnCompletion 侦听器
【发布时间】:2012-04-15 07:41:38
【问题描述】:

如何使用 OnCompletion 监听器来播放一些音乐? 我想按一个按钮转到另一个播放音乐的活动,然后在音乐播放完成后返回。我已经编码了其他的东西。我只是不知道如何使用 OnCompletion 监听器?

【问题讨论】:

    标签: android media-player listener


    【解决方案1】:

    你应该把音乐完成时应该运行的代码放在OnCompletionListener中,例如:

    mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        public void onCompletion(MediaPlayer mp) {
            finish(); // finish current activity
        }
    });
    

    【讨论】:

      【解决方案2】:
      mPlayer.setOnErrorListener(new OnErrorListener() {
      public boolean onError(MediaPlayer paramMediaPlayer, int paramInt1,int paramInt2) {
      // TODO Auto-generated method stub
      //your code if any error occurs while playing even you can show an alert to user
      return true;
      }
      });
      mPlayer.setOnCompletionListener(new OnCompletionListener() {
      public void onCompletion(MediaPlayer mp) {
      // TODO Auto-generated method stub
      //your code if the file was completely played either show an alert to user or start another activity or file.
      //even you can finish you activity here
      }                   
      }); 
      

      【讨论】:

        【解决方案3】:

        我发现上面是正确的,但是我一直在努力将代码放在哪里。 见下文,我把这段代码放在我的代码之后开始曲调!

        playButton.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            mediaPlayer.start();       //Next line is the beginning of where to place the code.
            mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
              @Override
              public void onCompletion(MediaPlayer mediaPlayer) {
              Toast.makeText(MainActivity.this, "I'm Finished", Toast.LENGTH_SHORT).show();
              }
            });
          }
        });
        

        【讨论】:

          【解决方案4】:

          这里是 setOnCompletionListener 的 kotlin 版本:

          mediaPlayer.setOnCompletionListener(MediaPlayer.OnCompletionListener { it // this is MediaPlayer type
                          Log.d(TAG,"setOnCompletionListener OnCompletionListener called")
                          // do other task
                      })
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-12-05
            • 1970-01-01
            • 1970-01-01
            • 2017-02-22
            • 2011-08-16
            相关资源
            最近更新 更多