android jni 调用java 实例
1.CallVoidMethodstatic void android_media_MediaRecorder_setCamera(JNIEnv* env, jobject thiz, jobject camera){// we should not pass a null camera to get_native_camera() call.if (camera == NULL) {jniThr
·
1.CallVoidMethod
static void android_media_MediaRecorder_setCamera(JNIEnv* env, jobject thiz, jobject camera)
{
// we should not pass a null camera to get_native_camera() call.
if (camera == NULL) {
jniThrowNullPointerException(env, "camera object is a NULL pointer");
return;
}
#ifdef MEIG_UVC_CAMERA
jclass clz = env->GetObjectClass(thiz);
jmethodID setCameraFromJni = env->GetMethodID(clz,"setCameraFromJni","(Landroid/hardware/Camera;)V");
env->CallVoidMethod(thiz,setCameraFromJni,camera);
#else
sp<Camera> c = get_native_camera(env, camera, NULL);
if (c == NULL) {
// get_native_camera will throw an exception in this case
return;
}
sp<MediaRecorder> mr = getMediaRecorder(env, thiz);
process_media_recorder_call(env, mr->setCamera(c->remote(), c->getRecordingProxy()),
"java/lang/RuntimeException", "setCamera failed.");
#endif
}
2.CallObjectMethod 参数输入,参数返回
jclass clz = env->GetObjectClass(thiz);
jmethodID jsonSizesFromJni = env->GetMethodID(clz,"jsonSizesFromJni","(Ljava/lang/String;)Ljava/lang/String;");
jstring params_size = (jstring)env->CallObjectMethod(thiz,jsonSizesFromJni,env->NewStringUTF(size.string()));
更多推荐
已为社区贡献50条内容
所有评论(0)