我在更改音频音调以保持其速度(速度)方面遇到问题。我想更改音频的音调,但同时不要更改其持续时间。对于Android 6.0及更高版本,有一种简单的方法来执行此操作。我们需要的只是使用这一行:

mediaPlayer.setPlaybackParams(mediaPlayer.getPlaybackParams().setPitch(1.7f));


但是,对于较低版本的Android,该如何做呢?
有没有简单的方法可以做到这一点?

也许有一些外部库可以帮助我?
我发现例如SoundTouch,但我无法将其添加到Android Studio项目中。

因此,如果有一种简单的方法可以更改版本低于6.0的Android版本的音调,我真的很感谢有人为我提供解决方案。
或者,如果没有像Android 6.0及更高版本那样简单的方法,那么如果有人给我其他有用的解决方案(如库或其他解决方案),我将不胜感激。而且如果有本机库,那么最好有人解释如何将其添加到Android Studio项目中。

对不起我的英语不好!谢谢!

最佳答案

我认为可以通过使用setPlayBackRate更改播放速度来更改音高。我不了解SoundTouch,但我发现SoundPool它具有setRate方法可以更改playBackrate。
这是SoundPool文档中的qoute

加载声音并开始播放后,应用程序可以通过调用SoundPool.play()来触发声音。播放流可以暂停或恢复,并且应用程序还可以通过实时调整多普勒或合成效果的播放速率来更改音高。
播放速率允许应用程序更改声音的播放速率(音高)。值1.0表示以原始频率播放。值2.0表示回放速度是前者的两倍,而值0.5表示回放速度是前者的一半。

09-26 18:02
查看更多