| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1501 人关注过本帖
标题:BASS音量(线性音量)和directshow音量的转换
只看楼主 加入收藏
wsgsoft
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2019-12-9
收藏
 问题点数:0 回复次数:0 
BASS音量(线性音量)和directshow音量的转换
本篇文章属于《518超市播音软件开发日志》系列文章的一部分。
我在开发《518超市播音软件》(http://www.)的时候,在用户层面是用线性音量表达0-100,但是还用到directshow播放音乐,范围是0-10000不是线性的。怎么转换呢? 下面是我的转换代码,基本可以用,但是不保证是最好的最正确的代码。
程序代码:
int Tapp::lin2ds(int vol, BOOL bMute)
{
    if (bMute || vol <= 1) return -10000;
    else return (log10(1.0*vol) - 2.0) * 5000.0;
}

double Tapp::lin2bass(int vol)
{
    double dVol = (double)vol / 100.0;
    double rsl = (0.998*pow(dVol, 2) + 0.003*dVol - 0.001);
    if (rsl < 0.0) rsl = 0.0;
    return rsl;
}
搜索更多相关主题的帖子: 线性 int 转换 return double 
2021-04-21 01:43
快速回复:BASS音量(线性音量)和directshow音量的转换
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013956 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved