2016-01-20 64 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

切換時實際上沒有區別...... –

相關問題