当前位置: 代码迷 >> 多媒体/流媒体开发 >> ?DirectSound主缓冲默许22khz,辅助缓冲如果是11khz 是否冲突
  详细解决方案

?DirectSound主缓冲默许22khz,辅助缓冲如果是11khz 是否冲突

热度:9647   发布时间:2013-02-26 00:00:00.0
?DirectSound主缓冲默认22khz,辅助缓冲如果是11khz 是否冲突
例如,uchar buffer[11000]中保存着单声道,8位、11khz采样的音频数据,时长=数组长度/11k=1秒。
创建辅助缓冲lpdsbuffer,其缓存大小与数组buffer一致,将数组的数据复制到辅助缓存中,并使用
lpdsbuffer->Play(0,0,0)进行单次播放。
由于主缓冲采用的是默认的22khz、8位、双声道。此时Play的后果是什么?
1.播放时长只有0.5秒(由于主缓冲采样频率高一倍)?或者0.25秒(继续考虑到单声道和双声道的冲突)
2.buffer数组中的数据假如是100hz的正弦波,播放的时候变成200hz的效果?

 

------解决方案--------------------------------------------------------
不知道这个复制有没有格式检查,如果没有格式转换仅是内存copy
1. 0.25秒,8位单声道1字节/帧,8位立体声2字节/帧,加上采样率高一倍,换算出时间是1/4
2. 对。