您的位置:首页 > Web前端

(转) 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: