如何在Android中使用OpenSL ES或其他C / C ++代码更改音频音高而不改变其持续时间?

时间:2017-01-20 10:12:55

标签: android c++ c audio

我在改变音频音高以保持其持续时间时遇到问题。我想改变音频的音高,同时不改变它的速度。

我编译了this code但是setPitch()方法是空的..

任何人都可以使用OpenSL ES或其他C / C ++代码给我一个解决方案或一些提示吗?

我知道java并不是很好,所以我想用C / C ++代码来做。

抱歉我的英文!谢谢!

1 个答案:

答案 0 :(得分:0)

SoundTouch Audio Processing Library 已经为此目的而开发。

这是一个很棒的图书馆,但很难找到在线示例(或文档)。您可能必须阅读source files以了解如何使用它。

这是how it works internally

您可以查看使用其库处理的歌曲的结果,在不改变速度here的情况下执行各种音高变换。