audioTrack play()只播放一次

时间:2011-07-12 00:50:23

标签: android

首次使用Android的AudioTrack。 我创建了一个类AndroidAudioDevice。我用这个构造函数初始化它:

 public AndroidAudioDevice( ){  // constructor
           Log.i("Audio", "constructor");
           int minSize =AudioTrack.getMinBufferSize( SAMPLE_RATE, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT );        
           track = new AudioTrack( AudioManager.STREAM_MUSIC, SAMPLE_RATE, 
                                                AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, 
                                                minSize, AudioTrack.MODE_STATIC);

           createSample();
           track.write( buffer, 0, buffer.length );
       };

(SAMPLE_RATE设置为44100)。

我的主要活动只有一个按钮,可以调用

public void playSound(){
           track.play();
           Log.i("Audio", "playState: " + track.getPlayState());
       };

this works find BUT ONLY ONCE! If I press the button again no sound anymore. 

BTW:Log.i为播放状态显示“3”

知道为什么这只能运作一次吗?提前致谢

1 个答案:

答案 0 :(得分:7)

州3是PLAYSTATE_PLAYING。在第二次致电play之前,我会尝试拨打stop()reloadStaticData

相关问题