【发布时间】:2017-09-15 08:35:47
【问题描述】:
我正在尝试使用 audioTrack 播放音频流,所以我创建了这样的 audioTrack:
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
任何帮助将不胜感激!(我是中国人,我的英语不好)
【问题讨论】:
-
不要发布你的代码截图..直接粘贴你的代码sn-ps
-
谢谢!但我不知道该怎么做,那么这个怎么样?
-
是的..现在好多了..
-
您是否在清单中添加了权限?
-
我需要添加女巫权限吗?我不确定,但它在其他潜水器中正常运行
标签: java android audioflinger