zoukankan      html  css  js  c++  java
  • (转) IDirectSoundBuffer::SetVolume的参数与音量分贝的函数关系

    假如将播放器的控制音量切割成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

  • 相关阅读:
    [YTU]_2536( C++ 长方体继承自矩形)
    [YTU]_2560(C++继承(改错题))
    [YTU]_2532(投简历)
    [YTU]_2621(B 继承 圆到圆柱体)
    stl
    noip2008双栈排序
    倍增入门水题
    noip模拟【ping】
    dp入门(LIS,LCS)
    【Luogu 1799】数列
  • 原文地址:https://www.cnblogs.com/lihaiping/p/5054304.html
Copyright © 2011-2022 走看看