第一次使用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 );
};
Run Code Online (Sandbox Code Playgroud)
(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.
Run Code Online (Sandbox Code Playgroud)
BTW:Log.i为播放状态显示"3"
知道为什么这只能工作一次吗?提前致谢
状态3是PLAYSTATE_PLAYING.我会尝试在第二次调用之前调用stop()或reloadStaticDataplay.
| 归档时间: |
|
| 查看次数: |
2520 次 |
| 最近记录: |