首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓支持的OpenSL ES功能

安卓支持的OpenSL ES功能
EN

Stack Overflow用户
提问于 2011-04-02 06:05:50
回答 2查看 3.1K关注 0票数 2

安卓应该通过OpenSL es API支持3D音频,该API可以通过NDK访问。这或多或少起作用了,我设法让它通过创建的播放器和输出混音来播放声音。但当我试图实现一个带有3D定位接口(SL_IID_3DLOCATION常量)的监听器时,这是播放3D声音所必需的。但是,当我尝试将常量设置为SL_BOOLEAN_TRUE时,传递给LogCat的CreateListener方法的结果是12。12是OpenSL es常量SL_RESULT_FEATURE_UNSUPPORTED的值。下面你可以找到代码的一小部分,是否有人能确认我是否做错了什么,或者该功能是否真的不受支持,这意味着OpenSL es实现不支持3D音频?

代码语言:javascript
复制
#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);
EN

回答 2

Stack Overflow用户

发布于 2011-05-17 21:06:11

你可能想看看这个网站:https://developer.android.com/ndk/guides/audio/opensl/opensl-for-android。它显示了用于安卓的OpenSL ES API支持的内容以及(更重要的)不支持的内容。我还没有使用过3D定位功能,但话又说回来,我还没有需要它。

不管怎样,也许那个网站会给你更多关于它的信息。

票数 2
EN

Stack Overflow用户

发布于 2013-09-18 06:29:22

当我上周再次研究这个问题时,我可能已经找到了解决方案。我在这里发布了一个第三方库的可能的解决方案:

OpenSLES with 3D audio

也许需要它的人可以验证它是否有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5519357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档