2016-01-20 145 views

回答

2

您可以设置何时制作AudioTrack的实例。

/* Create AudioTrack instance */ 
    AudioTrack mAudioTrack = null; 

    int minSize = AudioTrack.getMinBufferSize(
      16000, 
      AudioFormat.CHANNEL_OUT_MONO, // or set AudioFormat.CHANNEL_OUT_STEREO 
      AudioFormat.ENCODING_PCM_16BIT); 

    if (mAudioTrack == null) { 
     mAudioTrack = new AudioTrack(
       AudioManager.STREAM_MUSIC, 
       16000, 
       AudioFormat.CHANNEL_OUT_MONO, // or set AudioFormat.CHANNEL_OUT_STEREO 
       AudioFormat.ENCODING_PCM_16BIT, 
       minSize, 
       AudioTrack.MODE_STREAM); 
    } 
    /* Create AudioTrack instance */ 

    /* Stop and release AudioTrack instance */ 
    mAudioTrack.flush(); 
    mAudioTrack.stop(); 
    mAudioTrack.release(); 
    mAudioTrack = null; 
    /* Stop and release AudioTrack instance */ 

如果你想在运行时AudioTrack新实例,以前的实例将首次发布。

+0

谢谢您的回复@ Kae10 ...但是我已经尝试过不同的频率,也就是22050,48000。但它不起作用。 –

+0

你可以检查有关'AudioTrack'或你的问题的日志吗?你的sampleRate不是非法的,但在某些情况下,它不是合适的价值。 – Kae10

+0

切换时实际上没有区别...... –

相关问题