码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2015-12-17 16:16:09      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:

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

 

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

 

 


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

 

 

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

 

 

转自:http://blog.csdn.net/sky04/article/details/7070418

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

标签:

原文地址:http://www.cnblogs.com/lihaiping/p/5054304.html

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