2009-12-07 132 views
9

所以我想,讓用戶挑選的媒體的特定部分與我的使用這裏所描述的方法Android應用程序: Access pictures from Pictures app in my android app訪問視頻和照片+

它的偉大工程,除了事實上,我似乎只能選擇視頻或照片來向用戶展示,而不是同時進行。是否與要做到這一點的好辦法:

startActivityForResult(新 意向(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), SELECT_IMAGE);

謝謝!

+0

要雪上加霜 - 當我使用的方法與視頻 - 它不會真正讓用戶挑選的媒體 - 它只是播放它時,他們選擇它 - 它不會顯示縮略圖。我要重寫Gallery嗎?有沒有一種方法可以調出圖庫,然後讓它返回選定媒體的Uri? – FunnyLookinHat 2009-12-09 06:09:37

回答

17

我已經使用了這幾次。最好的辦法是這樣的:

Intent mediaChooser = new Intent(Intent.ACTION_GET_CONTENT); 
//comma-separated MIME types 
mediaChooser.setType("video/*, images/*"); 
startActivityForResult(mediaChooser, 1); 

即使這不完全準確的,它已經在我在用它一切正常這將打開一個畫廊式的活動與縮略圖列表。用戶畫廊中的每個圖片/視頻。返回的意圖onActivityResult()有一個額外的名爲「數據」,這將是一個內容://URI到選定的媒體。

編輯:哎呀,得到的URI你真的想調用的getData()上被傳遞給onActivityResult()

+2

Robert - 出於某種原因,每當我使用以下行時,我都會顯示一個空的選取器: mediaChooser.setType(「video/*,images/*」); 我也試過這個沒有運氣...... mediaChooser.setType(「video/*,image/*」); 然而,每一個單獨工作正常...即 mediaChooser.setType(「video/*」); mediaChooser.setType(「image/*」); 你能粘貼一個確切的代碼片段嗎? **** 編輯 - 看起來像這個不工作了發佈2.0版 – FunnyLookinHat 2010-07-19 21:59:49

+3

嗨! 我使用的是Android 1.6,它不適用!只有圖像或只有視頻是好的。任何想法? – Karoly 2011-06-23 15:03:09

+1

不適用於2.3 – 2011-07-30 19:32:14

1

Kivy的意圖所選擇的媒體 - 最簡單的方法是創建一個意圖選擇的介質,其限制視頻:

Intent pickMedia = new Intent(Intent.ACTION_GET_CONTENT); 
pickMedia.setType("video/*"); 
startActivityForResult(pickMedia,12345); 

注 - 12345是你的應用程序需要監聽的請求回調,這樣你需要的地方,您可以發送您收到任何信息的整數。

然後,您還需要有同樣的活動監聽的信息發送從這一意圖回:

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == 12345) { 
      if (resultCode == Activity.RESULT_OK) { 
       Uri selectedVideoLocation = data.getData(); 

       // Do something with the data... 
      } 

     } 
    } 

酷?

+1

問題是關於訪問視頻和照片 - 而不僅僅是視頻。你給的答案只關於視頻。 – 2011-07-30 19:34:46

+0

不幸的是,你不能在Android 2.0以上 - mediaChooser.setType(「video/*,images/*」)的僞造方法;將無法工作,除非您創建自己的選擇器活動來掃描媒體並將其返回到選取器屏幕 - 最好的方法是讓用戶在視頻圖像之間進行選擇。 – FunnyLookinHat 2011-11-06 21:32:57

+0

不知道他們在4.2.x中做了什麼,但選擇多個MIME類型似乎工作得很好:) – 2013-04-18 04:09:41

1
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
startActivityForResult(intent, 1); 
1

試試這個

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("*/*"); 
startActivityForResult(intent, 101);