簡體   English   中英

如何在 Android 中使用 OpenSL ES 或其他 C/C++ 代碼改變音頻的音高而不改變其持續時間?

[英]How to change pitch of audio without changing its duration using OpenSL ES or other C/C++ code in Android?

我在改變音頻的音高保持其持續時間時遇到問題。 我想改變音頻的音調,同時不改變它的速度。

我編譯了這段代碼,但 setPitch() 方法是空的..

誰能給我一個解決方案或一些提示如何使用 OpenSL ES 或其他 C/C++ 代碼來做到這一點?

我知道 java 不適合這樣做,所以我想使用 C/C++ 代碼來做。

對不起我的英語不好! 謝謝!

SoundTouch 音頻處理庫就是為此目的而開發的。

這是一個很棒的庫,但很難找到在線示例(或文檔)。 您可能需要閱讀源文件以了解如何使用它。

這就是它內部的工作方式

您可以在此處查看使用其庫處理的歌曲的結果,在不改變速度的情況下執行各種音高更改。


編輯

截至今天,我更喜歡使用RubberBand :它通常會提供更多定性的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM