标签:
1. 设计思路
由于DirectSound循环播放时,是按区域锁定写入数据方式,并且在播放时不能写入数据的特征,所以设计成区块方式。
2. 概念
2.1 按区块划分管理,虚拟头区块接尾区块构成“环"。“环”是有n个区块构成。
2.2 播放过的区块需要清零,避免混入播放过的声音。
2.3 监督播放位置,每当播放到区块首时,触发一次通知消息,引发对下一块的处理事件。
2.4 由步进、读、写功能组成。
3. 实现
3.1 为了方便专门抽象为一个类,即混音环类。
3.2 区块长度为1秒,共有21个区块,1个区块用于当前混音操作。
3.3 按区块步进,每次步进一个区块。
3.3 按20个区块长度为一个区块读写,因为一个最长采样限制在20秒以内。
4. 导出数据
4.1 混音操作完后,导出到一个字节缓冲区,再有DirectSound写入到发音环形缓冲区。
标签:
原文地址:http://www.cnblogs.com/hbg200/p/4969965.html