我正在使用AudioTrack
播放一些我混音的声音。真的很短的声音,比如长度为1秒,每隔一秒,比如3秒。
创建AudioTrack
:
AudioTrack at = new AudioTrack(AudioManager.STREAM_MUSIC, 44100,
AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_16BIT,
4410 * 2 * 2 /* 100 ms stereo */, AudioTrack.MODE_STREAM);
玩:
at.play()
at.write(mix, 0, mix.size)
at.stop()
大部分时间这完美无瑕。但是,有时 - 特别是插入耳机/外置扬声器时 - 声卡关闭。我可以注意到确切的时刻,因为通常情况下,当没有播放任何声音并且声音打开时,会出现一些非常安静的白噪声。
声音关闭,白噪声完全消失,根本没有播放下一些声音。经过大约2-3次尝试后,声卡恢复了生机。
此外,有时声音口吃的第一毫秒会重复。好像卡片在回来时太慢了?
造成这种奇怪行为的原因是什么?我怎么能绕过它呢?我绝不会附加到AudioTrack
,如果有更好的选择,那就让我玩short
的数组,然后我就全都听了。
编辑:这些可能是相关的: