私はプログラムでカメラを開いてビデオを撮影します。私はカメラに、次のようなコードを使って指定された場所にビデオファイルを置くよう指示します:Motorola 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)はあなたのために動作しませんでしたinsted/sdcardのような静的パスを渡すか? – MKJParekh
これはsdcardの問題ではありません。ビデオの代わりに写真を撮ると、 "/sdcard/camera.png"はうまくいきます。 –