大家好,我使用AudioTrack类播放纯PCM数据,调用play()方法的时候,抛出了异常:play() called on uninitialized AudioTrack。
向大家请教解决办法。代码如下:public void run() {
m_out_buf_size = AudioTrack.getMinBufferSize(44100,
AudioFormat.CHANNEL_CONFIGURATION_MONO, //CHANNEL_CONFIGURATION_STEREO, CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT); m_out_trk = new AudioTrack(AudioManager.STREAM_MUSIC, 44100,
AudioFormat.CHANNEL_CONFIGURATION_STEREO, // CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
m_out_buf_size,
AudioTrack.MODE_STREAM); m_out_bytes = new byte[m_out_buf_size];
byte[] bytes_pkg = null;
m_out_trk.play();
while (m_keep_running) {
try {
in.read(m_out_bytes);
bytes_pkg = m_out_bytes.clone();
m_out_trk.write(bytes_pkg, 0, bytes_pkg.length);
} catch (Exception e) {
e.printStackTrace();
}
}
m_out_trk.stop();
m_out_trk = null;
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
向大家请教解决办法。代码如下:public void run() {
m_out_buf_size = AudioTrack.getMinBufferSize(44100,
AudioFormat.CHANNEL_CONFIGURATION_MONO, //CHANNEL_CONFIGURATION_STEREO, CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT); m_out_trk = new AudioTrack(AudioManager.STREAM_MUSIC, 44100,
AudioFormat.CHANNEL_CONFIGURATION_STEREO, // CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
m_out_buf_size,
AudioTrack.MODE_STREAM); m_out_bytes = new byte[m_out_buf_size];
byte[] bytes_pkg = null;
m_out_trk.play();
while (m_keep_running) {
try {
in.read(m_out_bytes);
bytes_pkg = m_out_bytes.clone();
m_out_trk.write(bytes_pkg, 0, bytes_pkg.length);
} catch (Exception e) {
e.printStackTrace();
}
}
m_out_trk.stop();
m_out_trk = null;
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
int minBufferSize=AudioTrack.getMinBufferSize(sampleRateInHz,channelConfig,audioFormat);