为什么cpp层方法的第二个参数不是jobject类型,而是jclass类型?
来源:9-8 实战-Android下的播放器

GavinXu89
2022-03-29
cpp层的函数声明:
JNIEXPORT void JNICALL
Java_cc_dewdrop_ffplayer_utils_FFUtils_playVideo(JNIEnv *env, jclass type, jstring videoPath_, jobject surface)
第二个参数为jclass类型。
但课程9-2中说,第二个参数应该是jobject类型。
9-2原话:
“第二个参数呢是java对象(jobject),这是什么意思呢,就是谁调用了这个API,那么就会把这个java对象当作参数传进来,那么传进来的时候呢,它就是一个通用类型的就是一个object,前面加一个j呢就是JNIEnv专门为这个java对象设计的一个类型就是jobject。“
写回答
1回答
-
李超
2022-03-29
这涉及到java 虚拟机原理,如果你现在理解不了,参考例子知道传哪个参数就好了。后面可以自己研究一下java 虚拟机
00
相似问题
函数指针有什么优势?
回答 1
关于buffersink的参数疑问
回答 1