【问题标题】:How to find that audioTrack has finished/stopped playing?如何找到 audioTrack 已完成/停止播放?
【发布时间】:2014-09-30 08:00:12
【问题描述】:

我需要通过AudioTrack播放pcm文件,我想知道它是否播放完毕?

我的代码:

scheduleTaskExecutor.scheduleAtFixedRate(new Runnable() { public
              void run() {

              if (audioTrack.getPlayState() == AudioTrack.PLAYSTATE_STOPPED) {
              System.out.println("stop");  } // doSomethingUseful();
              }
             }, 0, 1, TimeUnit.SECONDS);

然后

do{
 if (audioTrack.getPlayState() == AudioTrack.PLAYSTATE_STOPPED) {

              // stop(); // myAudioRecorder.release(); // stop(); //
              myAudioRecorder = new MediaRecorder(); // myAudioRecorder.stop();
              System.out.println("stopped......................."); //
              myAudioRecorder.release(); r_start = false; }

              } while (r_start == true);

但以上都不起作用。

我怎么知道它已经播放完了?

【问题讨论】:

    标签: android playback audiotrack


    【解决方案1】:

    参考这篇文章 How to tell when AudioTrack object has finished playing?

    此解决方案使用“OnPlaybackPositionUpdateListener”,通过标记音频长度的长度来通知播放何时达到特定标记。

    【讨论】:

      【解决方案2】:
      audioTrack
                          .setPlaybackPositionUpdateListener(new OnPlaybackPositionUpdateListener() {
      
                              @Override
                              public void onPeriodicNotification(AudioTrack track) {
                                  // TODO Auto-generated method stub
      
                              }
      
                              @Override
                              public void onMarkerReached(AudioTrack track) {
                                  // TODO Auto-generated method stub
      
                                  stop();
      
                                  // messageHandler.sendMessage(messageHandler.obtainMessage(PLAYBACK_END_REACHED));
      
                              }
                          });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-29
        相关资源
        最近更新 更多