首页 > 数据库技术 > 详细

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

时间:2015-12-17 16:13:32      阅读:271      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!