2014-09-30 4 views
1

AudioTrack을 통해 pcm 파일을 재생해야합니다. 재생을 완료했는지 여부를 알고 싶습니다.audioTrack이 (가) 끝났거나 재생이 중지 된 것을 찾는 방법은 무엇입니까?

내 코드 :

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); 

그러나 위의 노력의 없음.

재생이 완료되었음을 어떻게 알 수 있습니까?

답변

0
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)); 

         } 
        });