android 调用系统相机录像并保存

1、在AndroidManifest.xml中添加如下代码

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"    tools:ignore="ProtectedPermissions" />
<application
<provider    android:authorities="${applicationId}.provider"    android:name="android.support.v4.content.FileProvider"    android:exported="false"    android:grantUriPermissions="true">    <meta-data android:name="android.support.FILE_PROVIDER_PATHS"        android:resource="@xml/provider_paths">    </meta-data></provider>
 </application>
</manifest>

2、在res目录下新建一个xml文件夹,并且新建一个provider_paths的xml文件

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="external_files" path="."/>
</paths>

3、主文件中打开相机

Intent intent=new Intent(MediaStore.ACTION_VIDEO_CAPTURE);try {

//fileUri=Uri.fromFile(createMediaFile());如果这样写会报错    fileUri= FileProvider.getUriForFile(CameraVideoActivity.this,getApplicationContext().getPackageName() + ".provider",createMediaFile());//这是正确的写法

} catch (IOException e) {    e.printStackTrace();}intent.putExtra(MediaStore.EXTRA_OUTPUT,fileUri);intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,1);

startActivityForResult(intent,1);

4、创建并保存视频的方法

private File createMediaFile() throws IOException {    if(Utils.checkSDCardAvaliable()) {        if ((Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))) {            // 选择自己的文件夹            String path = Environment.getExternalStorageDirectory().getPath() + "/myvideo/";            // Constants.video_url 是一个常量,代表存放视频的文件夹            File mediaStorageDir = new File(path);            if (!mediaStorageDir.exists()) {                if (!mediaStorageDir.mkdirs()) {                    Log.e("TAG", "文件夹创建失败");                    return null;                }            }

// 文件根据当前的毫秒数给自己命名            String timeStamp = String.valueOf(System.currentTimeMillis());            timeStamp = timeStamp.substring(7);            String imageFileName = "V" + timeStamp;            String suffix = ".mp4";            File mediaFile = new File(mediaStorageDir + File.separator + imageFileName + suffix);            return mediaFile;        }    }    return null;}}

5、重写onActivityResult方法

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {    if(requestCode==1)    {        if(resultCode==RESULT_OK)        {            Toast.makeText(this, "Video saved to:\n" +                    data.getData(), Toast.LENGTH_LONG).show();            vv_play.setVideoURI(fileUri);            vv_play.requestFocus();        }    }}

6、DDMS截图

原文地址:https://www.cnblogs.com/maoliyy/p/9284847.html

时间: 2024-10-10 19:03:40

android 调用系统相机录像并保存的相关文章

android调用系统相机拍照并保存在本地

import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Calendar; import java.util.Locale; import android.annotation.SuppressLint; import android.app.Activity; import an

Android调用系统相机、自定义相机、处理大图片

Android调用系统相机和自定义相机实例 本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显示出来,该例子也会涉及到Android加载大图片时候的处理(避免OOM),还有简要提一下有些人SurfaceView出现黑屏的原因. Android应用拍照的两种方式,下面为两种形式的Demo展示出来的效果.    知识点: 一.调用系统自带的相机应用 二.自定义我们自己的拍照界面 三.关于计算机解析图片原理(如何正确加载图片到Android应用中) 所需

android 调用系统相机获取图片、调用系统相册获取图片,并对图片进行截取

打开系统相册获取图片并截取,代码相对简单 1 Intent intent = new Intent(Intent.ACTION_GET_CONTENT,null); 2 intent.setType("image/*"); 3 intent.putExtra("crop", "true"); 4 5 //WIDTH 和 HEIGHT指的是截取框的宽高比例,如设WIDTH = 1,HEIGHT = 1,截取框就为正方形 6 intent.putEx

Android 调用系统相机以及相册源码

Android 调用系统相机拍照.以及相册.完成之后图片是上传到app上.前面的功能已经测试过了.没有上传到服务器,因为我没服务器测试.但项目里面有个类可以参考上传图片到服务器,我就没测试了.接下来看代码,虽然注释写得少,但其作用看英文单词意思,又在或是查看调用. 项目源码下载地址:http://download.csdn.net/detail/qq_16064871/8585169 转载请注明出处: http://blog.csdn.net/qq_16064871 package com.ex

Android调用系统相机拍照保存照片很小解决方案

保存图片小的一般操作步骤: 1. 调用系统相机 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 1); 2. 保存照片 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {  // TODO Auto-generated method s

Android 调用系统相机拍照保存以及调用系统相册的方法

系统已经有的东西,如果我们没有新的需求的话,直接调用是最直接的.下面讲讲调用系统相机拍照并保存图片和如何调用系统相册的方法. 首先看看调用系统相机的核心方法: Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(camera, CAMERA); 相机返回的数据通过下面的回调方法取得,并处理: public static final int CAMERA  = 0x01; @Over

Android调用系统相机功能

在常规应用开发过程中,我们经常会使用到手机的相机功能,通过调用系统相机方便快捷的帮助我们实现拍照功能,本篇我将带领大家实现一下,如何通过调用系统相机实现拍照. 第一种:调用系统相机拍照,通过返回的照片缩略图展示我们的拍照图片 打开系统相机: Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, TAKE_PICTURE);// 如果用Activity.RESULT_O

Android调用系统相机获取返回数据

由于项目需要调用相机,实现上传照片,例如微博,微信中功能.Android中可以非常轻松的调用系统相机,并返回Bitmap数据,但有一点不足,它返回的Bitmap尺寸很小,清晰度不够,这问题将稍后解决.下面通过代码演示. 1.界面布局 res/layout 定义一个简单布局,一个Button和ImageView,分别用于跳转系统相机Activity和显示系统相机返回数据. 1 <LinearLayout xmlns:android="http://schemas.android.com/ap

Android调用系统相机和相册

准备工作 权限 <!-- 往SDCard写入数据权限 --> <uses-permission android:name="android.permission. WRITE_EXTERNAL_STORAGE" /> <!--请求访问使用照相设备--> <uses-permission android:name="android.permission.CAMERA" /> 常量 public final static