public class VideoActivity extends AppCompatActivity { public static Handler handler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_video2); Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); Uri fileUri = null; try { fileUri = Uri.fromFile(createMediaFile()); // create a file to save the video } catch (IOException e) { e.printStackTrace(); } intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); // set the video image quality to high // start the Video Capture Intent startActivityForResult(intent, 1); } private File createMediaFile() throws IOException { File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES), "CameraDemo"); if (!mediaStorageDir.exists()) { if (!mediaStorageDir.mkdirs()) { return null; } } String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); String imageFileName = "VID_" + timeStamp; String suffix = ".mp4"; File mediaFile = new File(mediaStorageDir + File.separator + imageFileName + suffix); return mediaFile; } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { if (resultCode == RESULT_OK) { // Video captured and saved to fileUri specified in the Intent Uri data1 = data.getData(); //拿到视频保存地址 String s = data1.toString(); String[] split = s.split(":"); Message msg = Message.obtain(); msg.obj = split[1]; if (handler != null) { handler.sendMessage(msg); } } else if (resultCode == RESULT_CANCELED) { // User cancelled the video capture } else { // Video capture failed, advise user } } finish(); } }
android调用系统相机录制视频并保存本地
猜你喜欢
转载自blog.csdn.net/weikai_/article/details/80347272
今日推荐
周排行