Android录制视频,仿微信小视频录制(二)

Android录制视频,第二部分具体使用

简述

录制视频博客第一篇写了视频录制控件的相关内容(视频录制博客第一篇),这一篇里讲一下控件的具体使用。其实自己看一下控件的代码,很容易使用的,可以根据自己的要求定制一下参数什么的,这里的代码就各位就当个参考看看吧。

效果图

具体实现

录制页面大概这几个功能点:
  • 显示录制进度
  • 按下录制
  • 上划取消录制
  • 录制完成保存视频
  • 退出页面删除视频文件或文件夹(可选)

注意的点

录制预览的尺寸需要设置的,控件的大小长宽比率需要配合预览尺寸,不然预览会变形的。还有就是我们公司项目是要自拍的,所以直接默认调用了前置摄像头,需要调用后置的可以在代码里更改。切换摄像头的需求没有,也就没做,有需求可以自己做一下。还有权限问题,录制前会有权限检测。注释还算比较详细的,具体可以参考注释。

代码

java代码RecordVideoActivity.java

import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.ActivityCompat;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

import java.io.File;
import java.io.IOException;

/**
 * 视频拍摄页面
 * Created by Wood on 2016/4/6.
 */
public class RecordVideoActivity extends Activity implements View.OnClickListener {
   
    private static final String LOG_TAG = "RecordVideoActivity";
    private static final int REQ_CODE = 110;
    private static final int RES_CODE = 111;
    /**
     * 录制进度
     */
    private static final int RECORD_PROGRESS = 100;
    /**
     * 录制结束
     */
    private static final int RECORD_FINISH = 101;

    private MovieRecorderView movieRecorderView;
    private Button buttonShoot;
    private RelativeLayout rlBottomRoot;
    private ProgressBar progressVideo;
    private TextView textViewCountDown;
    private TextView textViewUpToCancel;//上移取消
    private TextView textViewReleaseToCancel;//释放取消
    /**
     * 是否结束录制
     */
    private boolean isFinish = true;
    /**
     * 是否触摸在松开取消的状态
     */
    private boolean isTouchOnUpToCancel = false;
    /**
     * 当前进度
     */
    private int currentTime = 0;
    private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case RECORD_PROGRESS:
                    progressVideo.setProgress(currentTime);
                    if (currentTime < 10) {
                        textViewCountDown.setText("00:0" + currentTime);
                    } else {
                        textViewCountDown.setText("00:" + currentTime);
                    }
                    break;
                case RECORD_FINISH:
                    if (isTouchOnUpToCancel) {
  //录制结束,还在上移删除状态没有松手,就复位录制
                        resetData();
                    } else {
  //录制结束,在正常位置,录制完成跳转页面
                        isFinish = true;
                        buttonShoot.setEnabled(false);
                        finishActivity();
                    }
                    break;
            }
        }
    };
    /**
     * 按下的位置
     */
    private float startY;

    @Override
    protected void</
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值