Android调用系统照相机拍摄视频并将其拷贝到制定的文件夹下

通过调用系统照相机拍摄视频并将其复制到指定的文件夹下。

 Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
 intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);

//0为匹配的标示符,和返回的requestCode对应。
 startActivityForResult(intent, 0);



@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
        super.onActivityResult(requestCode, resultCode, intent);

        Log.i(RecordActivity.this.toString(), "录制结果" + "requestCode:" + requestCode + ", " +
                "" + "resultCode:" + resultCode + ", data:" + intent.toString() + intent.getData().toString());

        //如果返回的request代码和startActivityForResult的代码不匹配或录制取消则直接返回
        if(requestCode != 0){
            return ;
        }else if(resultCode != -1){
            return;
        }

        //通过Uri获取文件的绝对地址
        Uri uri = intent.getData();
        Cursor cursor = this.getContentResolver().query(uri, null, null,
                null, null);
        String filePath = null;
        if (cursor != null && cursor.moveToNext()) {
            int id = cursor.getInt(cursor.getColumnIndex(MediaStore.Video.VideoColumns._ID));
            filePath = cursor.getString(cursor.getColumnIndex(MediaStore.Video.VideoColumns.DATA));

            cursor.close();
        }

        //将文件拷贝到制定的文件夹下
        if(null != filePath){
            File tmpFile = new File(filePath);
            String fileSuffix = filePath.substring(filePath.lastIndexOf("."));
            if(tmpFile.exists()){
                String localPath = UserAccount.getInstance().getLocalDir("video/")+nameEdit.getText()+fileSuffix;
                File localFile = new File(localPath);
                tmpFile.renameTo(localFile);
                tmpFile.delete();
                Log.i(RecordActivity.this.toString(), "文件地址"+filePath+localFile.getAbsolutePath());
            }
        }
    }



转载于:https://my.oschina.net/u/266531/blog/281124

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值