Android MJPG底层C文件编译笔记

  1. 本次mjpg配置基于simplemjpegview,下载源码。
  2. MjpegInpiutStream.java文件中包含两个native修饰的函数pixeltobmp和freeCameraMemory来修改jni文件下的ImageProc中的.c和.h文件中对应的函数名为Java_dreamgo_ipcamera_mjpg_MjpegInputStream_pixeltobmp和Java_dreamgo_ipcamera_mjpg_MjpegInputStream_freeCameraMemory,其中Java_dreamgo_ipcamera_mjpg_为路径名、MjpegInputStream为类名、pixeltobmp为函数名,需要根据当前MjpegInputStream所在的路径进行调整。将ImageProc.c文件中274行由 if(bmp==NULL) return ; 改为 if(bmp==NULL) return -1; 不然将无法使用ndk编译。
  3. 在build.gradle中的android标签加入
  4. //必须要加此行 不要C文件部分会编译错误
  5. sourceSets.main.jni.srcDirs = []
  6. 删除源码中自带的jniLibs文件夹,前往http://androiddevtools.cn/下载android-ndk-r12b。anroid-ndk-r13b无法使用。
  7. 按照下图命令在Android Studio的Terminal执行,执行完成后将会在main文件夹下生成对应的libs文件夹,将libs文件夹重命名为jniLibs运行项目即可。img
  8. 进一步封装的MJPG播放器(带认证功能),可见ipcam-view