我有一个应用程序,可以从服务器播放音乐(mp3),创建播放列表等。
问题在于某些歌曲的声音/音量/分贝比其他歌曲更高或更低......因此我正在寻找一种在播放音乐时将DSP(数字声音处理)应用到我的应用程序中的方法。我需要一个声压缩器,如果超过阈值,它会降低db输出,如果低于某个阈值,则需要增加db输出。
有谁知道如何做到这一点???我在Google Play上找到了一些DSP应用程序,所以有可能但是如何实现呢?
我找到了一个名为“Automatic Gain Control”的可能解决方案,它实际上应该这样做,但是当我读它时,它意味着录制时的INPUT声音而不是OUTPUT,就像从服务器播放歌曲一样!
任何想法,建议,例子?
由于
答案 0 :(得分:0)
从Android KitKat开始,内置LoudnessEnhancer
效果。它会压缩声音,否则会以指定的增益设置进行剪辑。请参阅the docs,此处为an example。
您正在寻找的解决方案可能称为"Replay Gain",它使用嵌入到mp3文件中的标签来匹配生成的声级。因此,您的播放器可以降低比所需声音更大的音轨的增益,并增加静音音轨的增益。使用LoudnessEnhancer,您不应该遇到剪辑。因此,您实际上并不需要自己实现任何DSP代码。