识别Stop AudioTrack

时间:2012-07-10 18:27:37

标签: android

如何检测AudioTrack是否已完成播放?这不简单!!! 我需要在另一个之后立即触摸(入队)此代码无效... 按2次,第1次没有结束,两次声音同时播放......

private void getNextAudio() {
    try{            

        byte[] buffer = playlist.poll();
        if (buffer != null) {

            AudioTrack myatrack = getAudioTrack(buffer);                
            myatrack.setPlaybackPositionUpdateListener( new OnPlaybackPositionUpdateListener() {            

                public void onPeriodicNotification(AudioTrack track) {

                }

                public void onMarkerReached(AudioTrack track) {             
                    Log.d(TAG, "onMarker - estado: " + track.getPlayState());

                    if(track.getPlayState() == AudioTrack.PLAYSTATE_STOPPED){

                        track.flush();
                        track.stop();
                        track.release();

                        getNextAudio();
                    }                               
                }
            });             

            if (myatrack != null) {
                // toco o audio.
                myatrack.play();
            }
        }else{
            Log.d(TAG,"Finish");
        }
    }catch(NoSuchElementException ex){
        Log.d(TAG,"No such element");           
    }
}

再次感谢! 马特乌斯

0 个答案:

没有答案