經過調用系統照相機拍攝視頻並將其複製到指定的文件夾下。 java
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); ide
//0爲匹配的標示符,和返回的requestCode對應。
startActivityForResult(intent, 0); this
@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()); } } }