为什么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 虚拟机

0
0

经典再升级-FFmpeg5.0核心技术精讲,打造音视频播放器

学好FFmpeg核心技术,做高效,高薪,有竞争力的音视频工程师

2726 学习 · 814 问题

查看课程