(转) IDirectSoundBuffer::SetVolume的参数与音量分贝的函数关系
2015-12-17 15:25
381 查看
假如将播放器的控制音量切割成0-100的话,由于IDirectSoundBuffer::SetVolume(LONG lVolume)中参数的输入值是[-10000,0]
[cpp] view plaincopy
MySetVolume( DWORD inputVolume)
{
double decibels;
DWORD dsVol;
if (inputVolume==0)
dsVol = DSBVOLUME_MIN;
else if (inputVolume>10000)
dsVol = DSBVOLUME_MAX;
else
{
decibels = 20.0 * log10((double)inputVolume / 100.0);
dsVol = (DWORD)(decibels * 100.0);
}
pDSBuffer->SetVolume( dsVol );
}
当然,也可以将音量控制分割成0--10000了,基本的公式就是这样的。
有篇文章可以参考参考:http://www.animations.physics.unsw.edu.au/jw/dB.htm#definition
转自:/article/2602931.html
[cpp] view plaincopy
MySetVolume( DWORD inputVolume)
{
double decibels;
DWORD dsVol;
if (inputVolume==0)
dsVol = DSBVOLUME_MIN;
else if (inputVolume>10000)
dsVol = DSBVOLUME_MAX;
else
{
decibels = 20.0 * log10((double)inputVolume / 100.0);
dsVol = (DWORD)(decibels * 100.0);
}
pDSBuffer->SetVolume( dsVol );
}
当然,也可以将音量控制分割成0--10000了,基本的公式就是这样的。
有篇文章可以参考参考:http://www.animations.physics.unsw.edu.au/jw/dB.htm#definition
转自:/article/2602931.html
相关文章推荐
- 360搜索联盟推出“图片排行榜”新广告样式
- html/css基础篇——html代码编写过程中的几个警惕点
- js获取网页高度(详细整理)
- nodejs基础 -- Stream流
- jquery 元素选择器
- AngularJS 依赖注入
- 一招搞定多Offer选择
- jQuery.extend 和jQuery.fn.extend的差别
- 如何学习javascript
- 关于jquery与dom元素转换
- Jquery EasyUI 弹出div对话框引入其他页面(iframe)
- Jquery EasyUI 弹出div对话框引入其他页面(iframe)
- 【jQuery】调用live()方法绑定元素的事件
- 【jQuery】下拉列表框的change事件
- xml+xsl与html的结合
- JS 模板引擎 Handlebars.js 中文说明
- JavaScript数据类型
- Bootstrap Tooltip显示换行和左对齐
- bootstrap菜单、按钮及导航学习笔记5-3
- html5学习笔记(1)-新标签