音频音量 百分比
2025年02月15日
一、认识
音频音量百分比: 将音频的分贝值 dB
映射到一个 0
到 1
之间的音量百分比。具体逻辑为: 定义了一个最小的分贝值 minDb
为 -80
,表示最小音量的基准。在音频信号中,-80 dB
通常是背景噪声或非常低的信号强度,接近不可听的范围。这个值作为参考,决定了音量的最小值。对比采样音频分贝值与最小分贝值, 如果采样音频分贝值小于最小分贝值, 则说明音量非常小或接近静音,函数直接返回 0
,表示音量百分比为 0
(没有声音); 如果采样音频分贝值大于 1
, 说明音量非常大,超过了正常的听觉范围, 表示音量已经达到了最大值。然后根据 const volumePercent = (Math.abs(minDb) - Math.abs(dbValue)) / Math.abs(minDb);
计算介于最小分贝值和 1 dB
之间的采样分贝值来计算音量百分比。
二、实现
function getVolumeShownPercent(dbValue) {
const minDb = -80;
if (dbValue < minDb) {
return 0;
}
if (dbValue > 1) {
return 1;
}
const volumePercent = (Math.abs(minDb) - Math.abs(dbValue)) / Math.abs(minDb);
return volumePercent;
}