我現在可以用意圖拍攝視頻什麼是細節以創建啓動默認視頻修剪活動的意圖?並檢查它是否存在於設備上?用意圖啓動修剪視頻活動
5
A
回答
7
該解決方案依賴於一個版本的AOSP庫2的包裝正在安裝在設備上。你可以這樣說:
// The Intent action is not yet published as a constant in the Intent class
// This one is served by the com.android.gallery3d.app.TrimVideo activity
// which relies on having the Gallery2 app or a compatible derivative installed
Intent trimVideoIntent = new Intent("com.android.camera.action.TRIM");
// The key for the extra has been discovered from com.android.gallery3d.app.PhotoPage.KEY_MEDIA_ITEM_PATH
trimVideoIntent.putExtra("media-item-path", getFilePathFromVideoURI(this, videoUri));
trimVideoIntent.setData(videoUri);
// Check if the device can handle the Intent
List<ResolveInfo> list = getPackageManager().queryIntentActivities(trimVideoIntent, 0);
if (null != list && list.size() > 0) {
startActivity(trimVideoIntent); // Fires TrimVideo activity into being active
}
的方法getFilePathFromVideURI
基於這個問題的答案:Get filename and path from URI from mediastore
public String getFilePathFromVideoURI(Context context, Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = { MediaStore.Video.Media.DATA };
cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} finally {
if (cursor != null) {
cursor.close();
}
}
}
videoUri
是一個Uri
指向是這樣的:content://media/external/video/media/43
。您可以通過發出ACTION_PICK意向合一:
Intent pickVideoUriIntent = new Intent(Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(pickVideoUriIntent, PICK_VIDEO_REQUEST);
在onActivityResult
得到URI,像這樣:
....
case PICK_VIDEO_REQUEST:
Uri videoUri = data.getData();
...
該解決方案適用於我的Galaxy Nexus搭載Android 4.3果凍豆。
我不確定這是否適用於所有Android設備。 更可靠的解決方案可能是分配Gallery2應用程序,並將TrimVideo活動及其依賴關係放入可與您的應用程序一起交付的庫中。 希望這有助於反正。
0
試試這可能有助於
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra("android.intent.extra.durationLimit", 30000);
intent.putExtra("EXTRA_VIDEO_QUALITY", 0);
startActivityForResult(intent, ActivityRequests.REQUEST_TAKE_VIDEO);
此代碼的工作以及對API> = 2.2,但持續時間限制不會對API 2.1工作
+0
我不想拍視頻我說我已經可以做了,我想修剪一個已經存在的視頻 – user1447209
相關問題
- 1. 啓動的活動,意圖
- 2. 使用隱式意圖啓動活動?
- 3. 在同一Webview活動中使用兩種意圖啓動Youtube視頻
- 4. 無法啓動活動找不到活動來啓動意圖
- 5. 的Android無法啓動視頻活動
- 6. 啓動器活動意圖標誌
- 7. 意圖不啓動任何活動
- 8. SecurityException:不允許啓動活動意圖
- 9. 更新啓動活動的意圖
- 10. Android活動意向啓動
- 11. Android視頻意向啓動Adobe Reader
- 12. 意圖:啓動一個活動,無法啓動第二個活動
- 13. 從列表視圖啓動的活動
- 14. 從視圖中啓動活動
- 15. Android Camera2無法啓動活動自動記錄視頻
- 16. React-native修剪視頻
- 17. 處理活動視頻和非活動視頻
- 18. 使用意圖啓動新活動時發生活動未發現異常
- 19. 獲取視頻Uri從已啓動的意圖
- 20. 意圖啓動視頻不完成Nexus 7/Android 4.1.1
- 21. 使用swfobject自動啓動swf視頻
- 22. 如何在片段中啓動活動或調用意圖?
- 23. 使用意圖URL啓動Android瀏覽器的私人活動
- 24. 如何使用意圖啓動添加聯繫人活動?
- 25. 使用意圖在jar中啓動新活動時發生java.lang.NoClassDefFoundError
- 26. 使用意圖重新啓動當前活動
- 27. Android:使用意圖啓動任何活動
- 28. broadcastreceiver意圖啓動活動其他應用程序通知
- 29. 意圖從Android應用程序類啓動一個活動類
- 30. 如何使用待定意圖啓動新活動
在我的Nexus 5上工作,歡呼 – user1447209
只希望它會在剪切後返回到我的應用程序,保存 – user1447209