package com.learn.lister.systemvediorecord;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.v4.content.FileProvider;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import static android.provider.MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO;
public class MainActivity extends AppCompatActivity {
private Uri fileUri;
private Button main_button_record;
private Button main_button_get;
private int CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
main_button_record = findViewById(R.id.main_button_record);
main_button_get = findViewById(R.id.main_button_get);
// 点击录制视频,调用系统播放器开始录像
main_button_record.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
File file = null;
try {
file = createMediaFile();
} catch (IOException e) {
e.printStackTrace();
}
Intent intent;
Log.e("TAG", file.getName());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
intent = new Intent();
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
fileUri = FileProvider.getUriForFile(MainActivity.this,
"com.learn.lister.systemvediorecord.fileProvider", file);
} else {
intent = new Intent();
fileUri = Uri.fromFile(file);
}
intent.setAction("android.media.action.VIDEO_CAPTURE");
intent.addCategory("android.intent.category.DEFAULT");
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // 设置视频文件的名字
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); // 设置视频质量为高
startActivityForResult(intent, CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE);
}
});
// 点击查看视频文件,进入视频列表查看所有的视频文件
main_button_get.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, MyVideosActivity.class));
}
});
}
/**
* 创建一个文件的 uri,供视频录制完保存
*/
private File createMediaFile() throws IOException {
// 如果 SD 卡存在,则在外部存储建立一个文件夹用于存放视频
if ((Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))) {
// 选择自己的文件夹
String path = Environment.getExternalStorageDirectory().getPath();
File mediaStorageDir = new File(path + Constants.video_url);
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;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
SystemVedioRecord.zip (39个子文件)
SystemVedioRecord
.gitignore 127B
app
.gitignore 8B
build.gradle 1016B
src
androidTest
java
com
learn
lister
systemvediorecord
ExampleInstrumentedTest.java 798B
main
AndroidManifest.xml 1KB
res
mipmap-xhdpi
ic_launcher_round.png 6KB
ic_launcher.png 5KB
mipmap-mdpi
ic_launcher_round.png 2KB
ic_launcher.png 2KB
layout
video_item.xml 2KB
activity_my_videos.xml 1KB
activity_main.xml 840B
mipmap-xxhdpi
ic_launcher_round.png 10KB
ic_launcher.png 8KB
drawable
xml
network_security_config.xml 147B
provider_paths.xml 549B
mipmap-hdpi
ic_launcher_round.png 4KB
ic_launcher.png 3KB
mipmap-xxxhdpi
ic_launcher_round.png 14KB
ic_launcher.png 10KB
drawable-xhdpi
my_records_audio_img.png 137KB
back.png 128KB
values
strings.xml 83B
colors.xml 214B
styles.xml 392B
java
com
learn
lister
systemvediorecord
MainActivity.java 4KB
VideoAdapter.java 2KB
VideoItem.java 1KB
Constants.java 200B
MyVideosActivity.java 4KB
test
java
com
learn
lister
systemvediorecord
ExampleUnitTest.java 428B
libs
proguard-rules.pro 956B
settings.gradle 16B
build.gradle 601B
gradlew 5KB
gradlew.bat 2KB
gradle.properties 747B
gradle
wrapper
gradle-wrapper.properties 236B
gradle-wrapper.jar 52KB
共 39 条
- 1
资源评论
- 普通网友2020-10-09实用性不高,然后怎么结束录制我没看明白
- shijunxing10673008932019-05-27真的可以用
- i冇心2021-02-04垃圾,标题党
ListerCi
- 粉丝: 18
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功