我有一个应用程序可以播放服务器中的音乐(mp3),创建播放列表等。
问题是某些歌曲的声音/音量/分贝高于或低于其他歌曲...因此,我正在寻找一种在播放音乐时在我的应用程序中实现DSP(数字声音处理)的方法。我需要一个声音压缩器,如果它超过阈值,它会降低db输出;如果它低于某个阈值,则它会增加db输出。
有谁知道如何做到这一点???我在Google Play上找到了一些DSP应用,因此可以实现,但是如何实现呢?
我找到了一个可能的解决方案“Automatic Gain Control”,该解决方案实际上应该执行此操作,但是在我阅读时,它的意思是在录制时输入INPUT声音,而不是像播放服务器中的歌曲那样输出OUTPUT!
有什么想法,建议和例子吗?
谢谢
最佳答案
从Android KitKat开始,内置了LoudnessEnhancer
效果。它将压缩声音,否则将以指定的增益设置进行裁剪。参见the docs,这是an example。
可能,您正在寻找的解决方案称为"Replay Gain",它使用嵌入mp3文件中的标签来匹配所产生的声音级别。因此,您的播放器可以降低比所需声音大的音轨的增益,并增加无声音轨的增益。有了LoudnessEnhancer,您就不会遇到削波的情况。因此,您实际上不需要自己实现任何DSP代码。
关于android - 带有Android Media Player的DSP(数字声音处理),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37046343/