Android上的本机声音库可以改变音高吗?

Android上的本机声音库可以改变音高吗?,android,c++,audio,android-ndk,opensl,Android,C++,Audio,Android Ndk,Opensl,我对如何在安卓系统上设置本机音调感到困惑。我试图改变NDK中使用OpenSL ES的本机声音样本,但我得到了一个SL_RESULT_FEATURE_,在请求接口时几乎不支持任何与音高相关的东西。尝试的接口:SL_IID_音高、SL_IID_速率音高、SL_3D多普勒 // create audio player const SLInterfaceID ids[3] = { SL_IID_BUFFERQUEUE, SL_IID_PITCH, SL_IID_VOLUME}; const SLbool

我对如何在安卓系统上设置本机音调感到困惑。我试图改变NDK中使用OpenSL ES的本机声音样本,但我得到了一个SL_RESULT_FEATURE_,在请求接口时几乎不支持任何与音高相关的东西。尝试的接口:SL_IID_音高、SL_IID_速率音高、SL_3D多普勒

// create audio player
const SLInterfaceID ids[3] = { SL_IID_BUFFERQUEUE, SL_IID_PITCH, SL_IID_VOLUME};
const SLboolean req[3] = {SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE};
result = (*engineEngine)->CreateAudioPlayer(engineEngine, &bqPlayerObject, &audioSrc, &audioSnk,
        3, ids, req);
assert(SL_RESULT_SUCCESS == result);
结果总是不受支持的

我的目标是安卓-19。我也试过许多其他方法,但都没有用。我做错什么了吗?有没有不需要使用Java的替代方案


谢谢

Android对OpenSL的实现很少,而且这些接口都不受支持。您可以在NDK文档中找到支持的内容(以及添加的内容)的描述,或者-链接与NDK文档中的内容完全相同

不幸的是,除了编写自己的算法来更改PCM数据之外,没有其他简单的替代方法。

合成工具包(STK)具有音高偏移效果,可能适合您。

正如Dave指出的,没有本机解决方案。目前,我想说Android并不是寻找良好的本地音频支持的地方