视频录制

视频录制以控件的方式提供,录制的视频文件为 MP4 格式,编码方式为 h264/aac。

获取视频服务 MultimediaVideoService

  1. MultimediaVideoService videoService = findServiceByInterface(MultimediaVideoService.class.getName());

创建录制控件 SightCameraView

  1. SightCameraView cameraView = videoService.createCameraView(params);

SightCameraView 接口说明

  1. /**
  2. * 录制控件构造函数,请勿使用,需要使用 service 方式构造录制控件对象
  3. */
  4. public SightCameraView(Context context) ;
  5. /**
  6. * 开始录制
  7. */
  8. @Deprecated
  9. public void startRecord() ;
  10. /**
  11. * 图片缓存查询接口
  12. *
  13. * @param business 业务 ID
  14. * @return 录制开始动作是否成功
  15. */
  16. public int startRecord(String business);
  17. /**
  18. * 停止录制
  19. */
  20. public void stopRecord() ;
  21. /**
  22. * 用于直播录制暂停,不走流量
  23. */
  24. public void pauseLiveRecord() ;
  25. /**
  26. * 用于直播录制的时候中断重试
  27. */
  28. public void retryLiveRecord();
  29. /**
  30. * 取消录制,录制文件不会生成
  31. */
  32. public void cancelRecord() ;
  33. /**
  34. * 取消录制
  35. * @param releaseCamera 是否释放摄像头
  36. */
  37. public void cancelRecord(boolean releaseCamera) ;
  38. /**
  39. * 切换摄像头
  40. */
  41. public Camera switchCamera() ;
  42. /**
  43. * 重新打开摄像头
  44. * @param mode 打开模式 MODE_VIDEO(视频),MODE_PHOTO(图片)
  45. */
  46. public Camera reopenCamera(int mode) ;
  47. /**
  48. * 获取摄像头 ID
  49. */
  50. public int getCameraId();
  51. /**
  52. * 注册录制监听器
  53. * @param listener 录制监听器
  54. */
  55. public void setOnRecordListener(OnRecordListener listener) ;
  56. /**
  57. * 注册滑动监听器
  58. * @param listener 滑动监听器
  59. */
  60. public void setOnScrollListener(OnScrollListener listener) ;
  61. /**
  62. * 设置美颜值
  63. * @param value 美颜值 (0 到 100),小于 0 为关闭美颜
  64. */
  65. public void setBeautyValue(int value) ;
  66. /**
  67. * 录制回调
  68. */
  69. public static interface OnRecordListener {
  70. /**
  71. * 视频录制开始
  72. */
  73. public void onStart();
  74. /**
  75. * 视频录制出错
  76. */
  77. public void onError(APVideoRecordRsp rsp);
  78. /**
  79. * 视频录制完成
  80. */
  81. public void onFinish(APVideoRecordRsp rsp);
  82. /**
  83. * 视频录制取消
  84. */
  85. public void onCancel();
  86. /**
  87. * 视频录制过程中的信息
  88. */
  89. public void onInfo(int code, Bundle extra);
  90. /**
  91. * 视频录制控件初始化完成
  92. */
  93. public void onPrepared(APVideoRecordRsp rsp);
  94. }
  95. public interface FaceDetectionListener {
  96. void onFaceDetection(APDetectionResult result);
  97. }
  98. public static interface OnScrollListener {
  99. public boolean onScroll(MotionEvent e1, MotionEvent e2,
  100. float distanceX, float distanceY);
  101. public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
  102. float velocityY);
  103. }
  104. public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
  105. }
  106. /**
  107. * 设置选中的素材 ID
  108. * @param materialId 素材 ID,null 表示未选中
  109. */
  110. public void setSelectedMaterial(String materialId);
  111. /**
  112. * 设置滤镜效果
  113. * @param filterId 滤镜 ID,具体见 APFalconLooks
  114. */
  115. public void setSelectedFilter(int filterId);
  116. /**
  117. * 设置监听人脸识别
  118. * @param listener 人脸识别监听器
  119. */
  120. public void setFaceDetectionListener(FaceDetectionListener listener);
  121. /**
  122. * 拍照
  123. * @param listener 回调
  124. * @param looper 回调所在的looper
  125. */
  126. public void takePicture(TakePictureListener listener, Looper looper);
  127. /**
  128. * 释放摄像头
  129. */
  130. public void releaseCamera() ;
  131. /**
  132. * 拍照及图片处理回调
  133. */
  134. public interface TakePictureListener {
  135. /**
  136. * 拍照异常
  137. */
  138. int ERROR_TAKEN_PICTURE = 1;
  139. /**
  140. * 解码拍照图片异常
  141. */
  142. int ERROR_DECODE_TAKEN_PICTURE = 2;
  143. /**
  144. * render不在
  145. */
  146. int ERROR_RENDER_NOT_EXISTS = 101;
  147. /**
  148. * render 处理异常
  149. */
  150. int ERROR_RENDER_PROCESS = 102;
  151. /**
  152. * 照片保存失败
  153. */
  154. int ERROR_SAVE_PROCESS_PICTURE = 103;
  155. /**
  156. * 拍照完成
  157. * @param data JPEG 数据
  158. * @param camera 摄像头
  159. */
  160. void onPictureTaken(byte[] data, Camera camera);
  161. /**
  162. * 拍照异常
  163. * @param errorCode 错误码
  164. * @param camera 摄像头
  165. */
  166. void onPictureTakenError(int errorCode, Camera camera);
  167. /**
  168. * 开始处理图片
  169. */
  170. void onPictureProcessStart();
  171. /**
  172. * 图片处理完成
  173. * @param path 保存的路径
  174. * @param width 图片的宽
  175. * @param height 图片的高
  176. * @param orientation 图片的方向
  177. */
  178. void onPictureProcessFinish(String path, int width, int height, int orientation);
  179. /**
  180. * 图片处理异常
  181. * @param code 错误码
  182. * @param data 图片数据
  183. */
  184. void onPictureProcessError(int code, byte[] data);
  185. }
  186. /**
  187. * 人脸检测回调监听
  188. */
  189. public interface FaceDetectionListener {
  190. void onFaceDetection(APDetectionResult result);
  191. }