论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
3 混音、提交过程
3.特殊情况的处理
上面讨论了混音及播放的一般过程,但在实际应用中,还需要到对一些特殊情况进行处理。
●各通道中待混音的Wave数据长度不同。
...
图4 各通道中的Wave数据长度不同
这种情况是指当前要混音的某一通道中的声音片段数据比Wave混音器所定义的缓冲区长度要小,这时该路被采样的声音没有足够的数据与Wave混音器中的数据相混叠。
对于这种情况,采用以下的方法可以有效地解决,主要包括三步:
a) Wave混音器在混音前首先判断是否有这种情况出现,如果出现,Wave混音器必须确定该Wave通道中所能被采样的数据长度;
b) 按照该通道所能被采样的数据长度,将该路的数据与其它多个通道中的数据相混叠存入Wave混音器的目的缓冲区中;
c) 停止对该通道Wave数据的采样混叠处理,只采样混叠其它通道中的Wave数据,存入Wave混音器目的缓冲区的余下部分。
因为在接下来的采样混音过程还会出现相同的情况,所以必须重复上述a-c的步骤,直到Wave混音器的缓冲区填充完毕或再没有可填充的数据为止。这时将该Wave混音器的目的缓冲区提交给Wave输出设备。
●当播放混音数据时又有新的一路Wave数据要求混叠并且被播放。
当前正在播放Wave混音器中一个已经混叠的目的缓冲区中Wave数据,这时又有一路声音要求马上混叠并且被播放。
这种情况处理起来比较复杂。多路Wave数据经过混叠,存储到目的缓冲区,该目的缓冲区中的W