zby_Jade 2016-01-07 17:24 采纳率: 33.3%
浏览 1958
已采纳

Android 限制和获取摄像的时长?

Android 如何去限制和获取摄像的时长,并且怎么获取视频的第一帧

  • 写回答

1条回答 默认 最新

  • 简一_hz 2016-01-08 03:26
    关注

    开启视频录制,需要创建一个MediaRecorder对象,并调用Camera::unLock操作解锁摄像头,因为默认Camera都是锁定的,只有解锁后MediaRecorder等多媒体进程调用,并设置一些参数,然后调用MediaRecorder:: start开启录制具体可以参阅如下代码:

    MediaRecorder mMediaRecorder = new MediaRecorder();

    // Unlock the camera object before passing it to media recorder.

    camera.unlock();

    mMediaRecorder.setCamera(camera);

    mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);

    mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

    mMediaRecorder.setProfile(mProfile);

    mMediaRecorder.setMaxDuration(100000);//ms为单位

    long dateTaken = System.currentTimeMillis();

    Date date = new Date(dateTaken);

    SimpleDateFormat dateFormat = new SimpleDateFormat(getString(R.string.video_file_name_format));

    String title = dateFormat.format(date);

    String filename = title + ".3gp"; // Used when emailing.

    String cameraDirPath = ImageManager.CAMERA_IMAGE_BUCKET_NAME;

    String filePath = cameraDirPath + "/" + filename;

    File cameraDir = new File(cameraDirPath);

    cameraDir.mkdirs();

    mMediaRecorder.setOutputFile(filePath);

    try {

    mMediaRecorder.prepare();

    mMediaRecorder.start(); // Recording is now started

    } catch (RuntimeException e) {

    Log.e(TAG, "Could not start media recorder. ", e);

    return;

    }

    上面设置了最大间隔为100s,当100是视频录制结束,录制就会被停止,如果没有设时长和文件大小限制,那么通常需要调用MediaRecorder:: stop函数主动停止视频的录制,并将Camera对象通过lock函数继续加锁,示例代码如下

    mMediaRecorder.stop();

    mMediaRecorder.reset();

    mMediaRecorder.release();

    mMediaRecorder = null;

    if(camera != null)

    camera.lock();

    关于获取视频的第一帧可以参考下http://www.2cto.com/kf/201501/370235.html 《Android视频处理 --处理视频第一帧缩略图》

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 matlab实现基于主成分变换的图像融合。
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊