?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. 对。