第一次使用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.
顺便说一句:Log.i 显示“3”表示播放状态
知道为什么这只有效一次吗?提前致谢
状态 3 是PLAYSTATE_PLAYING http://developer.android.com/reference/android/media/AudioTrack.html#PLAYSTATE_PLAYING。我会尝试打电话stop() http://developer.android.com/reference/android/media/AudioTrack.html#stop%28%29 or 重新加载静态数据 http://developer.android.com/reference/android/media/AudioTrack.html#reloadStaticData%28%29打电话之前play
第二次。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)