AudioFlinger无法创建跟踪,状态:-12

问题描述:

我试图发挥使用audioTrack音频流,所以我创建audioTrack这样的:AudioFlinger无法创建跟踪,状态:-12

public AudioTrack create() { 
    if (mTrack != null) { 
     if (mTrack.getState() == AudioTrack.STATE_INITIALIZED) { 
      return mTrack; 
     } else { 
      mTrack.release(); 
      mTrack = null; 
     } 
    } 

    mBuffSize = AudioTrack.getMinBufferSize(Settings.SAMPLE_RATE, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT); 
    mTrack = new AudioTrack(AudioManager.STREAM_MUSIC, Settings.SAMPLE_RATE, 
      AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, mBuffSize, AudioTrack.MODE_STREAM); 
    if (mTrack.getState() == AudioTrack.STATE_INITIALIZED) { 
     mTrack.play(); 
     return mTrack; 
    } 
    return null; 
} 

当我菲尼什 我呼吁停止这样的:

public void stop() { 
    if (mTrack != null) { 
     if (mTrack.getState() == AudioTrack.STATE_INITIALIZED) { 
      mTrack.release(); 
      mTrack = null; 
     } 

    } 

} 
在某些设备

,当我频繁地创建和停止,我得到这个:

AudioFlinger无法创建跟踪,状态:-12。

我搜索这个问题在StackOverflow上很多次,但所有的答案谈论的Soundpool,我没有使用过的Soundpool

任何帮助将不胜感激!(我是中国人,我的英语不是好)

+0

不要张贴你的代码截图。直接点击你的代码片段 – Akshay

+0

谢谢!但我不知道如何做到这一点,那么如何呢? –

+0

是的..现在更好.. – Akshay

添加

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"></uses-permission> 

播放音频流。

+0

我已经在...之前添加了此权限...谢谢 –