开发者

audioTrack play() plays only once

using Android's AudioTrack for the first time. I have created a class AndroidAudioDevice. I init it with this constructor:

 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, 
                                                Audi开发者_JAVA百科oFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, 
                                                minSize, AudioTrack.MODE_STATIC);

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

(SAMPLE_RATE is set to 44100).

My main activity simply has a button, which calls

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 displays a "3" for the playstate

Any idea why this works only once? Thanks in advance


State 3 is PLAYSTATE_PLAYING. I would try either calling stop() or reloadStaticData before calling play the second time.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜