android jni中将大数据回调到java层的时候用法,比如视频流,音频流等,图片流等 比如我用ffmpeg解码好视频流,想送到java层使用opengGL进行显示,opencv进行人脸识别等等
java层
//将解码好后的视频流回调回来
public void CallBack_VideoDecodeData(Object object, int len) {
//这里强制转换为ByteBuffer即可
ByteBuffer buffer = (ByteBuffer) object;
if (videoDecodeSteamCallBack != null) {
videoDecodeSteamCallBack.onVideoDecodeData(buffer, len);
}
}
jni层
g_CallBack_VideoDecodeData = (*env)->GetMethodID(env,clazz, "CallBack_VideoDecodeData", "(Ljava/lang/Object;I)V");
/**
* 直播的时候视频回调,这个是解码好后的视频
*/
int RT_VideoDecodeDataCallBack(uint8_t *data,int len){
JNIEnv *env;
int cRet= RT_GetEnv(&env);
if(cRet==-1){
return 0;
}
if(g_CallBack_VideoDecodeData == NULL){
LOGE("[%s:%d]g_CallBack_VideoDecodeData=NULL!\n",__FUNCTION__,__LINE__);
return 0;
}
#if 0