我用waveOutWrite()等waveOutX函数,做了实时播放程序.我用两种思路做的.一种是开两个缓冲区,用一个waveOutWrite()轮流取这两个缓冲区里面的实时音频数据进行播放.效果是:实时性很好,但是声音质量差,只能大约听清讲的是什么.
采取了措施:又多开了一个缓冲区,也就是用一个waveOutWrite()轮流取三个缓冲区里面的数据.效果基本如上.另一种,开一个数据缓冲区,和一个备用缓冲区,每次waveOutWrite()从数据缓冲区里面取数据,如果waveOutWrite()还没有工作结束,又有新音频数据到达,那么就进入备用缓冲区;当waveOutWrite()发送上一批数据结束,那么检查备用缓冲区有无数据,如果有,备用缓冲区的数据和新到达音频的数据一起发送:如果没有,只发送新的音频数据.
效果:声音延时大约0.5秒,但是声音的效果异常的好,非常清晰.请各位高手帮帮忙.看看怎么解决这个问题