当前位置: 代码迷 >> Android >> 请问:使用AudioTrack类播放PCM,抛出错误
  详细解决方案

请问:使用AudioTrack类播放PCM,抛出错误

热度:82   发布时间:2016-05-01 21:05:06.0
请教:使用AudioTrack类播放PCM,抛出异常
大家好,我使用AudioTrack类播放纯PCM数据,调用play()方法的时候,抛出了异常:play() called on uninitialized AudioTrack。
向大家请教解决办法。代码如下:
C/C++ code
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();    }}


------解决方案--------------------
因该是什么类没有uninitialized,和你仔细查查