如何在Android中测量AudioTrack的音量级别。我在我的应用程序中初始化并运行了少量AudioTrack,我想测量所有的AudioTracks音量级别,即在播放的音量级别而不是播放器的默认音量
有没有任何方法可以计算出每秒10个音量水平(比如说)?
答案 0 :(得分:0)
是 - 您提供给AudioTrack的音频格式是原始PCM,因此每个样本都包含当前时间片的波幅。
由于音频波在正负之间交替变换,因此您需要每个样本的绝对值(Math.abs()
)。
特定秒内所有样本的平均值将是计算当前音量水平的良好开端。最小值始终为0,最大值取决于采样深度(8,16或更多位)。
如果你想要更平滑的平均值,你可以通过以下方式使其平滑: total_average = 0.9 * total_average + 0.1 * last_average。