以给定的分贝生成音轨声音

问题描述 投票:1回答:1

我正在使用音轨来生成具有给定频率和分贝dB的蜂鸣声。在音轨中,有一种名为

的方法
setStereoVolume()

得到左右音量。但是在这个库中,音量是由幅度设定的,范围是0 -1,其中0是最小值,1是最大值,但是我的用户给出了dB,所以我需要将dB转换为幅度。搜索后,我发现公式为amp = 10^(dB/20)。问题在于,对于该公式,仅-ve dB有效;对于+ ve dB,公式返回大于1的值,这意味着最大值。

audioTrack.setStereoVolume((float) Math.pow(10,volumeL_val/20),(float) Math.pow(10,volumeR_val/20));

如何将+ ve dB转换为0-1范围内的幅度(Android可以接受)。

java android volume audiotrack
1个回答
0
投票

我的建议是将一个常数值乘以整个公式,这将使输出在0-1范围内即放大器= 10 ^(dB / 20)* const其中const应该根据频率而变化]

© www.soinside.com 2019 - 2024. All rights reserved.