Android 如何仅在可用时使用OpenSL ES
我只想在可用时使用OpenSL`ES,即Android版本>=2.3时 目前我在Android.mk中有Android 如何仅在可用时使用OpenSL ES,android,Android,我只想在可用时使用OpenSL`ES,即Android版本>=2.3时 目前我在Android.mk中有 LOCAL_LDLIBS += -lOpenSLES 但如果Android版本=2.3时,我才能动态加载Open SL库吗?可能使用System.loadLibrary?在加载库之前检查API版本,如果低于API 9,则不要加载 例如: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { Sys
LOCAL_LDLIBS += -lOpenSLES
但如果Android版本<2.3,这将不起作用
只有当Android版本>=2.3时,我才能动态加载Open SL库吗?可能使用System.loadLibrary
?在加载库之前检查API版本,如果低于API 9,则不要加载
例如:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
System.loadLibrary("xyz");
}
[编辑]
或者,如果希望有一个本机库,动态加载OpenSL ES,可以使用
dlopen
。您可以在stackoverflow上找到一个示例:但是哪个库适合OpenSL ES?如果您将您的库与OpenSLES链接,没有它就无法工作。因此,您必须构建两个库,一个用于OpenSLES,另一个不支持OpenSLES。但在这种情况下,您最好构建两个独立的APK用于发布。否则,您将提供两个库,其中一个永远不会使用。编辑:您可以通过在AndroidManifest.xml中使用单独的版本代码来实现这一点。看看: