Поддерживаемые функции OpenSL ES в Android - PullRequest
2 голосов
/ 02 апреля 2011

Android должен поддерживать 3D-аудио через API OpenSL es, который доступен через NDK. Это более или менее работает, мне удалось воспроизвести звук через созданный плеер и выходной микс. Но когда я пытаюсь реализовать слушателя с трехмерным интерфейсом местоположения (константа SL_IID_3DLOCATION), который является обязательным для воспроизведения трехмерного звука. Но когда я пытаюсь установить константу в значение SL_BOOLEAN_TRUE, результат метода CreateListener равен 12, как передается в LogCat. 12 - значение константы OpenSL es SL_RESULT_FEATURE_UNSUPPORTED. Ниже вы можете найти небольшую часть кода, может ли кто-нибудь подтвердить, что я делаю что-то не так или эта функция действительно не поддерживается, а это означает, что реализация OpenSL es не поддерживает 3D-аудио?

#define SL_RESULT_FEATURE_UNSUPPORTED       ((SLuint32) 0x0000000C)

const SLInterfaceID listener_ids[] = {SL_IID_3DLOCATION};
const SLboolean listener_req[] = {SL_BOOLEAN_TRUE};

result = (*engine)->CreateListener(engine, &listenerObject, 1, listener_ids, listener_req);
__android_log_print(ANDROID_LOG_VERBOSE, DEBUG_TAG, "CREATE: [%i]", result);

assert(SL_RESULT_SUCCESS == result);




result = (*listenerObject)->Realize(listenerObject, SL_BOOLEAN_FALSE);
__android_log_print(ANDROID_LOG_VERBOSE, DEBUG_TAG, "REALIZE: [%i]", result);

assert(SL_RESULT_SUCCESS == result);

Ответы [ 2 ]

2 голосов
/ 17 мая 2011

Возможно, вы захотите взглянуть на этот сайт: http://mobilepearls.com/labs/native-android-api/ndk/docs/opensles/. Он показывает, что есть и (что более важно), что не поддерживается OpenSL ES API для Android.Я не работал с функцией трехмерного определения местоположения, но опять же, у меня еще не было необходимости в этом.

В любом случае, возможно, этот сайт даст вам больше информации об этом ...

0 голосов
/ 18 сентября 2013

Возможно, я нашел решение этой проблемы, когда на прошлой неделе я еще раз взглянул на проблему.Я разместил возможное решение с использованием сторонней библиотеки здесь:

OpenSLES с 3D-аудио

Может быть, тот, кому это нужно, может проверить, сработало ли оно.

...