鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

封装jni接口

场景介绍

将视频流引擎客户端提供的C++接口封装成jni接口函数。

将通信模块的设置IP地址和端口封装成jni接口函数。

开发流程

  1. 封装视频流引擎客户端C++接口函数。
  2. 将通信模块的设置IP地址和端口封装成jni接口函数。
  3. 新建一个视频流引擎客户端jni回调对象。

编码实例

// 封装视频流引擎客户端C++接口函数
#define VIDEO_JNI(func) Java_com_huawei_videostream_cloudphoneui_engine_VideoWrapper_##func
JNIEXPORT jint JNICALL VIDEO_JNI(initialize)(JNIEnv* env, jclass cls);
JNIEXPORT jint JNICALL VIDEO_JNI(start)(JNIEnv* env, jclass cls, jobject surface, jint width, jint height, jfloat densityDpi);
JNIEXPORT void JNICALL VIDEO_JNI(stop)(JNIEnv* env, jclass cls);
JNIEXPORT jstring JNICALL VIDEO_JNI(getStatistics)(JNIEnv* env, jclass cls);
JNIEXPORT jint JNICALL VIDEO_JNI(recvData)(JNIEnv* env, jclass cls, jbyte type, jbyteArray jData, jint length);

// 以下为发送函数封装接口,用户可以根据需求封装不同的接口
JNIEXPORT jboolean JNICALL VIDEO_JNI(sendTouchEvent)(JNIEnv* env, jclass cls, jbyteArray jData, jint length);
JNIEXPORT jboolean JNICALL VIDEO_JNI(sendKeyEvent)(JNIEnv* env, jclass cls,jbyteArray jData, jint length);

// 封装视频流引擎回调事件
#define CB_JNI(func) Java_com_huawei_videostream_cloudphoneui_JniCallBack_##func
JNIEXPORT void JNICALL CB_JNI(setNativeCallback)(JNIEnv* env, jobject obj);

// 封装通信模块接口
#define NET_CONFIG_JNI(func) Java_com_huawei_videostream_cloudphoneui_NetConfig_##func
JNIEXPORT jboolean JNICALL NET_CONFIG_JNI(initialize)(JNIEnv* env, jclass cls);
// 设置通信模块的IP地址和端口
JNIEXPORT jboolean JNICALL NET_CONFIG_JNI(setNetConfig)(JNIEnv* env, jclass cls, jstring ip, jint port, jint type);