DirectSound 噪音有关问题

DirectSound 噪音问题
小弟刚开始使用DirectSound,主要的需求是播放实时音频数据,现在遇到的问题是噪音。
根据我目前的分析和测试,我把问题定位在“每一帧数据量太少,导致播放不够连续”上。
由于数据是一帧一帧从文件或者从网络读过来的,所以实时性很重要,如果使用太大的缓存和增加预存数据的长度会导致延迟。

我试过以下方式:
1、单缓存,读一帧PCM数据,写入缓存的开头,然后重新设置Position,重新执行 play函数并不加循环参数  
结果是有噪音。

2、双缓存,一个缓存在播放的时候,另一个进行存储PCM数据的操作,都没加循环标志,播放的方式和1相同,只是进行缓存切换。
结果是有噪音。

3、单缓存,容量相对较大:在读取到的前几帧数据,当写入到缓存后并不立即播放,然后到第N帧我才调用播放函数,新的数据来的时候,就追加到原有数据之后,如果容量不够大,就把剩下的数据写到缓存的开头,播放的时候添加循环标志,播放函数只调用一次。
结果是噪音小了,但是有重复声音的情况和少量噪音(我认为原因是因为数据来源的fps并不刚好等于25,写入速度和播放速度并不相等)


问题还没得到解决,希望高手能给点建议

------解决方案--------------------
你使用的是什么编码方式?你确定传输过来的音频解码后完全正常吗?缓存需要取一个适当的大小,我做这块儿的时候,这个缓存大小,用户是可以设置的···默认最佳·网络接收和播放速度不一定,我的做法是,用信号量控制,保证播放数据索引小于接收数据索引·