AudioTrack问题

时间:2011-08-18 12:21:16

标签: android audio java-native-interface android-ndk

你好我写了一个程序(在Android NDK上),它通过Java中的JNI提供音频缓冲。不稳定的问题。有时AudioTrack会完美地再现缓冲区,有时会出现以下消息:

08-18 15:13:00.745: INFO/AudioTrack(12457): AudioTrack::set streamType[3] channels[12] format[1] sampleRate[44100] 08-18 15:13:00.749: INFO/AudioPolicyManager(2381): setOutputDevice() output 1 device 2 delayMs 0 force:0 08-18 15:13:04.183: INFO/AudioHardwareALSA(2381): Output standby called!!. Turn off PCM device.

Java中的代码如下:

final int bufSize = AudioTrack.getMinBufferSize(44100, AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_16BIT);
track = new AudioTrack(AudioManager.STREAM_MUSIC, 44100,AudioFormat.CHANNEL_CONFIGURATION_STEREO,AudioFormat.ENCODING_PCM_16BIT, bufSize, AudioTrack.MODE_STREAM);
track.play();
int byt = track.write(buf, 0, length);

这个错误可能有什么问题?

1 个答案:

答案 0 :(得分:3)

在调用track.write之前,您必须先致电track.play并填写最小bufSize。