Android AudioTrack发出短嘟嘟声或cherp声,如何使声音变长?
睡眠(10000)将啁啾从半秒增加到一两秒。 Thread.sleep(40000)的啁啾声与Thread.sleep(10000)的啁啾声一样长 有m_或无m_或AudioTrack.setTereOVolume(AudioTrack.getMaxVolume(),AudioTrack.getMaxVolume())时的音量都一样大 m_iSampleRate=6000;与m_iSampleRate=48000具有相同的效果; 与m_iSampleRate=4000略有差异 将m_aGeneratedSnd增加到内存不足错误之前的某一点,不会增加声音的长度 第一个问题:如何增加声音的长度? 第二个问题:如何增加销量Android AudioTrack发出短嘟嘟声或cherp声,如何使声音变长?,android,Android,睡眠(10000)将啁啾从半秒增加到一两秒。 Thread.sleep(40000)的啁啾声与Thread.sleep(10000)的啁啾声一样长 有m_或无m_或AudioTrack.setTereOVolume(AudioTrack.getMaxVolume(),AudioTrack.getMaxVolume())时的音量都一样大 m_iSampleRate=6000;与m_iSampleRate=48000具有相同的效果; 与m_iSampleRate=4000略有差异 将m_aGener
提前感谢您的帮助。在调用play()之后,您需要继续调用AudioTrack对象上的write()。这将在缓冲区清空时将数据流传输到缓冲区中。play()后的write()将提高性能。而((m_atAudioTrack.getPlayState())==AudioTrack.PLAYSTATE_PLAYING)是无限的。write()的三个循环将同一数组重复2或3次,有时会在明显完成第三次之前剪切数组。
private void PlaySound()
{
if (m_atAudioTrack != null) m_atAudioTrack.release();
m_atAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
m_iSampleRate, AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT, m_aGeneratedSnd.length,
AudioTrack.MODE_STREAM);
m_atAudioTrack.write(m_aGeneratedSnd, 0, m_aGeneratedSnd.length);
m_atAudioTrack.setStereoVolume( AudioTrack.getMaxVolume(),
AudioTrack.getMaxVolume());
m_atAudioTrack.play();
try
{
Thread.sleep(10000);
}
catch (Exception e)
{
e.printStackTrace();
}
// Track play done. Release track.
if (m_atAudioTrack != null) m_atAudioTrack.release();
}