跳到主要内容

音频音量 百分比

2025年02月15日
柏拉文
越努力,越幸运

一、认识


音频音量百分比: 将音频的分贝值 dB 映射到一个 01 之间的音量百分比。具体逻辑为: 定义了一个最小的分贝值 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;
}