gpt4 book ai didi

android - 是否可以通过 C 级别使用 android API?或者我可以通过 C 代码使用编解码器吗?

转载 作者:太空宇宙 更新时间:2023-11-04 01:31:15 24 4
gpt4 key购买 nike

我正在构建一个视频系统,其中包含来自摄像头的视频捕获、视频编码和视频复用。

我想在 C 级别使用编码,因为在将数据发送到编码器之前我想实现一些算法。

NDK 示例中有一个'native-media' 项目,它在C 级别调用OMX 函数来进行视频解码和播放,但现在NDK 似乎不支持OMX 编码,是吗?真的吗?

我已经在 J​​ava 级别成功使用了 MediaCodec API,如果 NDK 不支持 OMX 的编码,我可以通过 C 代码使用 MediaCodec API 吗?

最佳答案

是的,您可以从 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);

地点:

  • “env”是您在 C JNI 方法中收到的 JNIEnv 指针(有关 JNIEnv 指针和 native 方法的信息,请阅读 here)。
  • “(I)V”是方法签名,在本例中表示该方法有一个 int 参数 (I),并返回 void (V)。
  • "x"是在之前的一些 *env 函数中获得的一个 jobject(here 你可以找到 env 指向的所有 JNI 函数)。

关于android - 是否可以通过 C 级别使用 android API?或者我可以通过 C 代码使用编解码器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22126016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com