我使用MediaStore.ACTION_VIDEO_CAPTURE
intent類來捕捉視頻,將視頻存儲在默認位置(圖庫),我想用特定名稱將視頻存儲在特定位置。Android MediaStore.ACTION_VIDEO_CAPTURE,外部路徑?
我使用MediaStore.EXTRA_MEDIA_TITLE
和MediaStore.EXTRA_MEDIA_OUTPUT
但我沒有在正確的位置獲得視頻,至少我需要錄製視頻的路徑。
在此先感謝。
我使用MediaStore.ACTION_VIDEO_CAPTURE
intent類來捕捉視頻,將視頻存儲在默認位置(圖庫),我想用特定名稱將視頻存儲在特定位置。Android MediaStore.ACTION_VIDEO_CAPTURE,外部路徑?
我使用MediaStore.EXTRA_MEDIA_TITLE
和MediaStore.EXTRA_MEDIA_OUTPUT
但我沒有在正確的位置獲得視頻,至少我需要錄製視頻的路徑。
在此先感謝。
從Zelimir該解決方案不起作用在我的情況(視頻位於正確的位置,但大小爲零字節)。所以,我已經找到了另一個解決方案:
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (resultCode != RESULT_OK) return;
try {
AssetFileDescriptor videoAsset = getContentResolver().openAssetFileDescriptor(intent.getData(), "r");
FileInputStream fis = videoAsset.createInputStream();
File tmpFile = new File(Environment.getExternalStorageDirectory(),"VideoFile.3gp");
FileOutputStream fos = new FileOutputStream(tmpFile);
byte[] buf = new byte[1024];
int len;
while ((len = fis.read(buf)) > 0) {
fos.write(buf, 0, len);
}
fis.close();
fos.close();
} catch (IOException io_e) {
// TODO: handle error
}
}
的MediaStore.EXTRA_OUTPUT
和開放的我們沒有必要在這種情況下。
技巧是記錄前將媒體插入數據庫:
String fileName = "captureTemp.mp4";
ContentValues values = new ContentValues();
values.put(MediaStore.Video.Media.TITLE, fileName);
cameraVideoURI = getContentResolver()
.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values);
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, cameraVideoURI);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
intent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, MAXIMUM_VIDEO_SIZE);
startActivityForResult(intent, CAPTURE_VIDEO_INTENT);
,然後onActivityResult()使用保存cameraVideoUri參考錄製的視頻:
String[] projection =
{ MediaStore.Video.Media.DATA, MediaStore.Video.Media.SIZE };
Cursor cursor = managedQuery(cameraVideoURI, projection, null, null, null);
int column_index_data =
cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
int column_index_size =
cursor.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE);
cursor.moveToFirst();
String recordedVideoFilePath = cursor.getString(column_index_data);
int recordedVideoFileSize = cursor.getInt(column_index_size);
這不適合我。它做了*某事*;而不是像通常那樣忽略`EXTRA_OUTPUT`參數,儘管我指定了一個完整的路徑名,例如/ sdcard/video文件夾,它在/ sdcard/video文件夾中創建了一個長度爲零的文件,一些現有-DIR/newfile.3gp`。關於此API的完整和正確的文檔將有所幫助。 – 2012-09-08 18:04:52
intent.getData()中的「intent」給出了空指針異常......你有什麼想法,它爲什麼會發生? – 2012-12-06 06:50:13