JAVA中所有MP3文件的音量相同

JAVA中所有MP3文件的音量相同,java,playback,audio-player,Java,Playback,Audio Player,我正在写一个基于Java的音乐播放器,它还可以自动将所有mp3的音量级别更改为相同的音量 例如,一些mp3的声音比其他的稍大,因此我想有一个播放器,可以自动调整音量水平,以相同的。所以太安静的歌曲应该响亮一点,太大声的歌曲应该更安静一点。最后,它们应该处于同一级别,这样我就不必更改设备的音量 我已经搜索了internet,但没有找到任何解决方案,如何在JAVA中执行此操作。您要查找的内容称为“”,并且已指定 现在掌握的曲调(见“”)将音量调低,而较老的曲调将音量调高,这样全球感知的轻松度保持不变

我正在写一个基于Java的音乐播放器,它还可以自动将所有mp3的音量级别更改为相同的音量

例如,一些mp3的声音比其他的稍大,因此我想有一个播放器,可以自动调整音量水平,以相同的。所以太安静的歌曲应该响亮一点,太大声的歌曲应该更安静一点。最后,它们应该处于同一级别,这样我就不必更改设备的音量


我已经搜索了internet,但没有找到任何解决方案,如何在JAVA中执行此操作。

您要查找的内容称为“”,并且已指定

现在掌握的曲调(见“”)将音量调低,而较老的曲调将音量调高,这样全球感知的轻松度保持不变

由于对整个音频数据进行分析以确定要应用的增益值,因此通常只进行一次,然后将其存储为元数据(前提是音频格式支持它,这至少是MP3、FLAC、OGG和AAC的情况)

例如,它是在免费的音频播放器Foobar2000中实现的,该播放器在曲目和专辑方面都非常有效。事实上,在一些专辑中,当作为一个整体播放时,将相同的增益应用于所有曲目是一种很好的做法

开源DJ软件提供了此功能,因此您应该能够在其存储库中找到一些与ReplayGain相关的代码


在某些信号能量低但峰值高的情况下,要小心防止削波,要么抑制重放,要么在音频链的末端添加一个限制器。

你没有发现,因为它不存在。您将需要一些能够分析波形并动态“规范化”它的东西。这本身将占用太多的资源。你必须弄清楚如何在应用程序之外规范化你的卷。这个问题还没有很好地定义。两个音频文件播放的声音相等意味着什么?如果你有一个声音单调的录音机,另一个几乎是无声的,但在某个点上有一个尖峰,那会怎么样?这正是我想要的!不幸的是,Mixxx是用C编写的,但我需要某种库或java代码。@zFr3eak没有提供任何惊人的结果,因此您需要自己实现它,或者围绕现有的本机库编写JNI包装器。祝你好运