2016-01-13 58 views
0

我已經採取了從視頻攝像頭,被保存在相機/ DCIM位置上的SD卡的Android(Intent.ACTION_VIEW)不能識別彌設備上mime類型的視頻/ MP4

現在我的應用程序需要視頻的本地路徑並嘗試播放使用默認的視頻播放器的視頻與下面的代碼

private void playVideo(String path) { 
     Uri videoUri = Uri.parse(path); 
     Intent videoIntent = new Intent(Intent.ACTION_VIEW); 
     videoIntent.setDataAndType(videoUri, "video/*"); 
     if (videoIntent.resolveActivity(getPackageManager()) != null) { 
     startActivity(Intent.createChooser(videoIntent, null)); 
     } 
    } 

現在的問題是視頻不與彌設備+其他一些舉杯「未發現媒體視圖」玩。

但是,通過從FileManager應用程序選擇視頻播放相同的視頻。

所以我想這個問題不在VideoPlayer中。 INSTEAD我認爲這是mimeType被分享給玩家的問題。但那只是我的假設。

任何人都面臨類似的問題,我需要幫助,因爲這個問題正在吃掉我的時間。 謝謝

+0

「我從攝像頭拍攝了一張保存在SD卡上的攝像頭/ DCIM位置的視頻」 - 因此,您知道實際的MIME類型是什麼。因此,你應該用實際的MIME類型替換'video/*'。 – CommonsWare

+0

也嘗試過,我的mp4視頻的視頻/ mp4 ...沒有幫助 – Avijeet

+0

「路徑」究竟是什麼? IOW,如果你將它登錄到LogCat,它看起來像什麼? – CommonsWare

回答

1

/storage/emulated/0/DCIM/Camera/VID_20160113_130138.mp4不是Uri的有效字符串表示形式。 A Uri需要一個方案。

據推測,曾經有一次,你有一個File對象。使用那個和Uri.fromFile(),而不是Uri.parse()。或者,使用Uri.fromFile(new File(path))。這會給你正確的方案設置。

+0

非常感謝,在過去的8個小時裏,我一直在爲此付出沉重的代價...設置模式工作...而不是這個 - Uri videoUri = Uri.parse(path)...我把Uri videoUri = Uri.fromFile(new File(path)); – Avijeet

+0

所以還有一個問題 - 即使我沒有使用架構使用Uri,「路徑」對於像Nexus 5這樣的其他設備是如何工作的? – Avijeet