使用Google相冊應用,我試圖挑選未在設備上緩存的視頻。從Google相冊應用獲取視頻(非本地)
我正在使用ACTION_GET_CONTENT意圖啓動選項對話框,然後從中選擇Google相冊應用。
選擇本地視頻時,它會以此形式返回Uri。
內容://媒體/外部/視頻/媒體/ 6708
,並從我查詢內容提供商檢索實際文件的位置,並從那裏繼續。文件位置如下所示。在視頻不可用:
/存儲/模擬/ 0/WhatsApp的/媒體/ WhatsApp的 視頻/ VID-20131102-WA0000.mp4
現在,當我選擇一個在線視頻,即我的設備還沒有,並且需要下載使用,返回的烏里看起來是這樣的:
內容://com.google.android.apps.photos.content/1/ https://lh6.googleusercontent.com/_RD-QTO_SK5jlaPldTe2n5GANqMc3h-ukcbNoFlF1NLy=s0-d
現在,有了這個,沒有記錄的ContentProvider可以幫助我獲得到這個視頻的實際鏈接。即使我做了查詢,它也不會返回除DISPLAY_NAME和SIZE列之外的任何內容。
DISPLAY_NAME包含video.mpeg(對於不同的視頻相同的顯示名稱)
SIZE可能告訴我的實際文件的大小。
我檢查各個崗位,並認爲我會得到通過內容提供商的視頻的InputStream,保存文件,並用文件的工作。然而,選擇一個圖像文件效果不錯,但是對於視頻而言,它不會。
因此,要將流複製到文件,我有這個代碼。
InputStream inputStream = context.getContentResolver().openInputStream(Uri.parse(path));
最後寫入臨時文件。該文件被創建,但似乎沒有正確格式化。 VLC播放該文件,但始終只顯示第一幀。
如果我從上面給出的URI的最後部分獲取URL並嘗試在瀏覽器上查看它,它會下載一個GIF文件。我猜這就是問題所在。但我不知道如何獲得視頻的格式。
任何人都經歷過相同的?
非常感謝你的這一點,這已經幫了很多! 這是一個相關的問題和接受的答案: http://stackoverflow.com/q/30572261/3309883 –