我以編程方式打開相機拍攝視頻。我告訴相機把視頻文件使用類似下面的代碼指定地點:摩托羅拉Android 2.2相機忽略EXTRA_OUTPUT參數
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
File out = new File("/sdcard/camera.mp4");
Uri uri = Uri.fromFile(out);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(intent, GlobalUtility.CAMERA_VIDEO);
它運作良好,一個HTC的手機上。但是在我的摩托車上,它只是忽略了MediaStore.EXTRA_OUTPUT參數,並將視頻放在默認位置。 於是我使用onActivityResult()函數的代碼來解決這個問題:
private String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
String realPath;
try {
File file = new File("/sdcard/camera.mp4");
if (!file.exists()) {
Uri videoUri = data.getData();
realPath = getRealPathFromURI(videoUri);
}
} catch (Exception ex) {
Uri videoUri = data.getData();
realPath = getRealPathFromURI(videoUri);
}
希望這將幫助一些人。
thankx爲info..tell我Environment.getExternalStorageDirectory()沒有爲你工作insted的傳遞靜態路徑如/ sdcard? – MKJParekh
這不是一個SD卡問題。如果我拍攝一張照片而不是視頻,「/sdcard/camera.png」在違抗方面效果很好。 –