我正在构建一个视频系统,其中包含来自摄像头,视频编码和视频多路复用器的视频捕获。
我想在C级使用编码,因为在将数据发送到编码器之前我想要实现一些算法。
在NDK示例中有一个'本地媒体'项目,它在C级别调用OMX函数来进行视频解码和播放,但似乎NDK现在不支持OMX编码,是真?
我在Java级别成功使用了MediaCodec API,如果NDK不支持OMX编码,我可以通过C代码使用MediaCodec API吗?
答案 0 :(得分:4)
是的,从C代码中可以调用Java方法。 例如,如果我们想调用方法x.doSomething(5),假设x是“com.example.ndk”包中的类MyClass的实例,并且该方法返回void,我们可以使用:
jclass cls = (*env)->FindClass(env, "com/example/ndk/MyClass");
jmethodID mid = (*env)->GetMethodID(env, cls, "doSomething", "(I)V");
(*env)->CallObjectMethod(env, x, mid, 5);
其中: