我正在编写一个基于Java的音乐播放器,这也应该自动改变所有mp3的音量水平相同。
例如,一些mp3的声音比其他的要大一点,因此我希望有一个播放器,它可以自动调节音量到相同的水平。所以太安静的歌应该更响亮,太吵的歌应该更安静。最后,它们应该在同一级别上,这样我就不必更改设备的音量。
我已经在互联网上搜索过了,但没有找到任何解决方案,如何在JAVA中做到这一点。
发布于 2016-01-07 06:01:23
您要查找的内容名为"ReplayGain“,并且是指定的here。
带有现代主音的曲调(参见"loundness war")的音量将会降低,而较旧的曲调的音量将调高,从而使全局感知的音量保持不变。
由于对整个音频数据进行分析以确定要应用的增益值,因此通常只进行一次,然后作为元数据存储(如果音频格式支持它,至少对于MP3、FLAC、OGG和AAC是这种情况)。
例如,它是在免费音频播放器Foobar2000中实现的,它在曲目和专辑方面都非常有效。事实上,在一些专辑中,将相同的增益应用于作为整体播放的所有曲目是一种很好的做法。
开源DJ软件Mixxx提供了此功能,因此您应该能够在其存储库中找到一些与ReplayGain相关的代码。
在某些具有低能量但高峰值的信号中,要小心防止削波,方法是抑制ReplainGain效应,或者在音频链的末端添加限制器。
https://stackoverflow.com/questions/34643552
复制相似问题