Собственная звуковая библиотека на Android, которая действительно может изменить высоту звука?

Я запутался в том, как изначально настроить высоту звука на Android. Я попытался изменить образец собственного звука из NDK, который использует OpenSL ES, но я получаю SL_RESULT_FEATURE_UNSUPPORTED практически для всего, что связано с высотой тона при запросе интерфейса. Испытанные интерфейсы: SL_IID_PITCH, SL_IID_RATEPITCH, SL_3DDOPPLER

// 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);

результат всегда SL_RESULT_UNSUPPORTED

Моя цель — Android-19. Я пробовал и многие другие, но безрезультатно. Я делаю что-то неправильно? Есть ли альтернатива, которая не требует использования Java?

Спасибо!

4

Решение

Android имеет минимальную реализацию OpenSL, и ни один из этих интерфейсов не поддерживается. Вы можете найти описание того, что поддерживается (и что было добавлено) в документах NDK, или Вот — ссылка точно такая же, как в документации от NDK.

К сожалению, нет простой альтернативы, кроме написания собственного алгоритма для изменения данных PCM.

4

Другие решения

Synthesis ToolKit (STK) имеет эффект смещения высоты тона, который может работать на вас.
https://ccrma.stanford.edu/software/stk/

Как отметил Дейв, нет нативного решения. В настоящее время я бы сказал, что Android — не то место, где нужно искать хорошую поддержку звука.

0

По вопросам рекламы [email protected]