织梦CMS - 轻松建站从此开始!

罗索

IDirectSoundBuffer::SetVolume的参数与音量分贝的函数关系

落鹤生 发布于 2012-05-30 19:34 点击:次 
IDirectSoundBuffer::SetVolume(LONG lVolume)中参数的输入值是[-10000,0]
TAG:

假如将播放器的控制音量切割成0-100的话,由于IDirectSoundBuffer::SetVolume(LONG lVolume)中参数的输入值是[-10000,0]

  1. MySetVolume( DWORD inputVolume) 
  2.     double decibels; 
  3.     DWORD dsVol; 
  4.  
  5.     if (inputVolume==0) 
  6.         dsVol = DSBVOLUME_MIN; 
  7.     else if (inputVolume>10000) 
  8.         dsVol = DSBVOLUME_MAX; 
  9.     else 
  10.     { 
  11.         decibels = 20.0 * log10((double)inputVolume / 100.0); 
  12.         dsVol = (DWORD)(decibels * 100.0); 
  13.     } 
  14.  
  15.     pDSBuffer->SetVolume( dsVol ); 

当然,也可以将音量控制分割成0--10000了,基本的公式就是这样的。

有篇文章可以参考参考:http://www.animations.physics.unsw.edu.au/jw/dB.htm#definition

(sky04)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201205/16045.html]
本文出处:CSDN博客 作者:sky04 原文
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容