android 视频采集

来源:互联网 发布:网络监控解决方案 编辑:程序博客网 时间:2024/05/22 11:32
视频传输的主要代码分析 
  实现视频数据采集功能的主要代码如下: 
  mCamera = Camera.open(); //获取设备的Camera 
  Camera.Parameters p = mCamera.getParameters();//获取摄像头参数 
  p.setPreviewSize(352, 288); //设置预览窗口大小 
  mCamera.setPreviewCallback(new H264Encoder(352, 288));//装载回调函数引用从摄像头取来的每一帧数据mCamera.setParameters(p); //设置摄像头服务//调用onPreviewFrame接口获取摄像头的每一帧数据public void onPreviewFrame(byte[] data, Camera camera) { 
  int result=CompressBuffer(encoder,-1,data,data.length,h264Buff); //CompressBuffer函数将获得的数据压缩成H264格式 
  if (result>0) 
  raf.write(h264Buff, 0, result);//raf为RandAccessFile的实例,此处将获取的编码后数据写入到SDCard中 
  } 
  //CompressBuffer为JNI调用,其中的主要代码如下 
  jint Java_h264_com_H264Encoder_CompressBuffer(JNIEnv* env, jobject thiz,jlong handle,jint type,jbyteArray in, jint insize,jbyteAr? 
  ray out)//JNI中函数CompressBuffer的定义 
  en->picture->i_type = X264_TYPE_AUTO; //编码memcpy(pTmpOut, en->nal[i].p_payload, en->nal[i].i_payload);//将编码后的数据拷贝输出 
  接收端监听Socket连接的端口接收数据并使用Android自带的H264解码程序软件解码。 
原创粉丝点击