android视频录制MediaStore.ACTION_VIDEO_CAPTURE
16lz
2021-12-04
调用系统组件
申请权限AndroidManifest.xml
SystemVedioActivity.java
package com.example.a20200712;import android.Manifest;import android.app.Activity;import android.content.Intent;import android.content.pm.PackageManager;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import android.util.Log;import android.view.View;import android.widget.Toast;import androidx.annotation.Nullable;import androidx.appcompat.app.AppCompatActivity;import androidx.core.app.ActivityCompat;import androidx.core.content.ContextCompat;import java.io.File;import java.io.IOException;public class SystemVedioActivity extends AppCompatActivity { private final int VIDEO_WITH_CAMERA = 1001; //自定义 private final int REQUEST_CODE_CAMERA = 1003; private final int REQUEST_CODE_WRITE_EXTERNAL_STORAGE = 1004; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.system_vedio_layout); } public void systemVedioRecord(View view){ requestPermission(); Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); //设置视频录制的最长时间 intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 10); //设置视频录制的画质 intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); startActivityForResult(intent, VIDEO_WITH_CAMERA); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); try { if (resultCode == Activity.RESULT_OK && requestCode == VIDEO_WITH_CAMERA) { Uri uri = data.getData(); Log.e("mw", "onActivityResult: " + uri.toString()); } } catch (Exception e) { e.printStackTrace(); } } /** * 权限动态申请 */ public void requestPermission() { // checkSelfPermission 判断是否已经申请了此权限 if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { //如果应用之前请求过此权限但用户拒绝了请求,shouldShowRequestPermissionRationale将返回 true。 if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) { } else { // ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CAMERA}, REQUEST_CODE_CAMERA); ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA }, REQUEST_CODE_WRITE_EXTERNAL_STORAGE); } } } /** * 申请结果返回 * @param requestCode * @param permissions * @param grantResults */ @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == REQUEST_CODE_CAMERA || requestCode == REQUEST_CODE_WRITE_EXTERNAL_STORAGE) { for (int i = 0; i < permissions.length; i++) { if (grantResults[i] == PackageManager.PERMISSION_GRANTED) { Toast.makeText(this, "" + "权限" + permissions[i] + "申请成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "" + "权限" + permissions[i] + "申请失败", Toast.LENGTH_SHORT).show(); } } } }}
system_vedio_layout.xml
<?xml version="1.0" encoding="utf-8"?>
更多相关文章
- android获取短信所有内容
- android新闻应用、应用锁、小说阅读、短视频APP等源码
- Android应用安全之Android平台上的跨应用攻击
- Android(安卓)权限
- Android总结篇系列:Android(安卓)权限
- android 无界面通过开机下载
- 麦子学院Android应用开发工程师视频教程 共18章
- Android安全机制--四大组件安全
- 《Android(安卓)从初学者入门到成为高手 视频教程合集》 (定期更