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视频处理 --处理视频第一帧缩略图》

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

报告相同问题?

悬赏问题

  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条