IDirectSoundBuffer::SetVolume的参数与音量分贝的函数关系
2011-12-14 14:52
489 查看
假如将播放器的控制音量切割成0-100的话,由于IDirectSoundBuffer::SetVolume(LONG lVolume)中参数的输入值是[-10000,0]
当然,也可以将音量控制分割成0--10000了,基本的公式就是这样的。
有篇文章可以参考参考:http://www.animations.physics.unsw.edu.au/jw/dB.htm#definition
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
相关文章推荐
- (转) IDirectSoundBuffer::SetVolume的参数与音量分贝的函数关系
- 多媒体音量控制setVolumeControlStream(int streamType)
- android 音量控制setVolumeControlStream
- IDirectSoundBuffer Play 播放一个很短的声音,发现总是不结束
- [学习记录]多媒体音量控制setVolumeControlStream(int streamType)
- 音量控制键控制的音频流(setVolumeControlStream)
- Audio系列之通用的音量设置函数setStreamVolume()
- 音量控制键控制的音频流(setVolumeControlStream)
- 在 Delphi 下使用 DirectSound (8): IDirectSound8.DuplicateSoundBuffer() 与 IDirectSoundBuffer.GetStatus()
- android setVolumeControlStream多媒体音量控制介绍
- Java_JVM参数-XX:MaxDirectMemorySize 与 两种 ByteBuffer: heap,direct ByteBuffer
- WinAPI: midiOutSetVolume - 设置 MIDI 输出设备的音量
- 多媒体音量控制setVolumeControlStream(int streamType)
- 多媒体音量控制setVolumeControlStream(int streamType)
- android音量控制setVolumeControlStream
- 多媒体音量控制setVolumeControlStream(int streamType)
- 多媒体音量控制setVolumeControlStream(int streamType)
- System.gc()和-XX:+DisableExplicitGC启动参数,以及DirectByteBuffer的内存释放
- Android MediaPlayer setVolume方法设置程序音量
- 音量控制键控制的音频流(setVolumeControlStream)描述