我想從手機播放媒體到ExoPlayer。 我正在從ExoPlayer:Uri:無法加載本地媒體Android
的路徑Environment.getExternalStorageDirectory()。getAbsoluteFile();
每當我嘗試播放媒體 - 我得到這個錯誤 -
源錯誤
com.google.android.exoplayer2.upstream.HttpDataSource $ HttpDataSourceException: 無法連接到/存儲/模擬/ 0 /下載/ big_buck_bunny_720p_1mb.mp4
也,
所致:java.net.MalformedURLException:沒有協議:/storage/emulated/0/Download/big_buck_bunny_720p_1mb.mp4
我路過這裏 - 烏里
MediaSource mediaSource = buildMediaSource(Uri.parse(link));
這種方法是使用URI-
private MediaSource buildMediaSource(Uri uri) {
DataSource.Factory dataSourceFactory = new
DefaultHttpDataSourceFactory("ua", BANDWIDTH_METER);
DashChunkSource.Factory dashChunkSourceFactory = new
DefaultDashChunkSource.Factory(dataSourceFactory);
return new DashMediaSource(uri, dataSourceFactory,
dashChunkSourceFactory, null, null);
}
這就是我如何得到鏈路
arrayList1 = video(Environment.getExternalStorageDirectory().getAbsoluteFile());
protected ArrayList<File> video(File file) {
File[] filename = file.listFiles();
ArrayList<File> arrayList2 = new ArrayList<File>();
try {
for (File file1 : filename) {
if (file1.isDirectory()) {
arrayList2.addAll(video(file1));
} else {
if (file1.getName().endsWith(".mp4")) {
arrayList2.add(file1);
}
}
}
}catch (Exception e){
}
return arrayList2;
}
請提供[MCVE]展示你是如何創建'Uri'和將其交給ExoPlayer。 – CommonsWare
@CommonsWare我已編輯帖子 –
停止使用'Uri.parse()'。使用'Uri.fromFile()'。 – CommonsWare