我正在使用here(使用ContentResolver
)在手機上獲取媒體,但返回的路徑格式爲/storage/emulated/0/...
,並試圖將其用於會得到Java.IO.FileNotFoundException
。我意識到這條道路可能不是一條真正的道路,但我如何從這條道路上獲得真正的道路?將MediaPlayer.SetDataSource()設置爲'/ storage/emulated/0/...'
當我在項目文件夾中有一個資產時,MediaPlayer
工作正常。但我無法讓它與其他文件一起工作。我已經爲READ_EXTERNAL_STORAGE
設置了權限。
雖然我寧願在C#中有一個答案,但Java中的答案可能就足夠了。
編輯
我已經看到了一些答案,處理類似的事情,但他們都認爲我有一個Uri
。上面的方法返回一個字符串。我還沒有成功將它轉換爲Uri,所以我甚至無法測試這些解決方案。
「我意識到,這條道路是可能不是真正的路徑「 - 」/ storage/emulated/0 /'肯定沒有錯。文件是否存在是另一回事。 「我已經設置了READ_EXTERNAL_STORAGE的權限。」 - 我不知道Xamarin如何處理運行時權限,但您最需要的也是。另請注意,您使用的方法不適用於所有媒體(例如,可移動存儲上的媒體)。 – CommonsWare
@CommonsWare它不在可移動媒體上。這是一個使用USB電纜和Windows資源管理器打開電話的文件。並且通過問題中提到的方法將路徑作爲'Data'返回。那麼可能是什麼問題? – ispiro
我提到[運行時權限](https://developer.android.com/training/permissions/requesting.html)是一種可能性。 – CommonsWare