封装jni接口
场景介绍
将视频流引擎客户端提供的C++接口封装成jni接口函数。
将通信模块的设置IP地址和端口封装成jni接口函数。
开发流程
- 封装视频流引擎客户端C++接口函数。
- 将通信模块的设置IP地址和端口封装成jni接口函数。
- 新建一个视频流引擎客户端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);
父主题: 视频流客户端开发流程