android AudioTrack测量音量

时间:2012-01-20 12:41:53

标签: android

如何在Android中测量AudioTrack的音量级别。我在我的应用程序中初始化并运行了少量AudioTrack,我想测量所有的AudioTracks音量级别,即在播放的音量级别而不是播放器的默认音量

有没有任何方法可以计算出每秒10个音量水平(比如说)?

1 个答案:

答案 0 :(得分:0)

是 - 您提供给AudioTrack的音频格式是原始PCM,因此每个样本都包含当前时间片的波幅。

由于音频波在正负之间交替变换,因此您需要每个样本的绝对值(Math.abs())。

特定秒内所有样本的平均值将是计算当前音量水平的良好开端。最小值始终为0,最大值取决于采样深度(8,16或更多位)。

如果你想要更平滑的平均值,你可以通过以下方式使其平滑: total_average = 0.9 * total_average + 0.1 * last_average。