码迷,mamicode.com
首页 > 其他好文 > 详细

DirectSound播放缓冲区长度计算

时间:2016-04-17 16:09:08      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

播放测试时,发现声音播放速度不对,找了不少地方,没发现错误,无奈,采用定时器,抓捕播放通知事件时间,发现每秒多了4次,这才恍然大悟,缺少对齐数。原公式为:dwPlayBufLen = iSamplesPerSec / iFrameFpsPerSec; 缺少了nBlockAlign对齐数,因为播放长度是按字节排序的,必须存在采样字长概念,而采样字长是按字节计算,每字节计为1,公式为:nBlockAlign = (nChannels  *  wBitsPerSample)  /  8; 修改播放缓冲区计算公式为:dwPlayBufLen = (iSamplesPerSec / iFrameFpsPerSec) * nBlockAlign; 播放速度正常。

DirectSound播放缓冲区长度计算

标签:

原文地址:http://www.cnblogs.com/hbg200/p/5401213.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!