我正在开发一个 android 应用程序来使用链接从我的服务器下载视频文件。我正在使用对浏览器的意图调用来做到这一点。
使用任何浏览器打开链接会打开文件并开始播放。但我想做的是开始将视频下载到 SD 卡。
视频格式是 .mp4
,我调用在我的应用程序中打开链接的方式是这样的:
Intent browserIntent=new Intent(Intent.ACTION_VIEW,Uri.parse(myUrl));
startActivity(browserIntent);
我正在开发一个 android 应用程序来使用链接从我的服务器下载视频文件。我正在使用对浏览器的意图调用来做到这一点。
使用任何浏览器打开链接会打开文件并开始播放。但我想做的是开始将视频下载到 SD 卡。
视频格式是 .mp4
,我调用在我的应用程序中打开链接的方式是这样的:
Intent browserIntent=new Intent(Intent.ACTION_VIEW,Uri.parse(myUrl));
startActivity(browserIntent);
伟大的!无论如何,您找到了最佳答案,我使用以下代码从服务器下载视频。你可以参考。谢谢。
class DownloadFileFromURL extends AsyncTask<Object, String, Integer> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onCancelled() {
super.onCancelled();
}
/**
* Downloading file in background thread
* */
@Override
protected Integer doInBackground(Object... params) {
try {
URL url = new URL((String) params[1]);
name = ((String) params[1]).substring(((String) params[1])
.lastIndexOf("/") + 1);
// Log.v("log_tag", "name Substring ::: " + name);
URLConnection conection = url.openConnection();
conection.connect();
// getting file length
int lenghtOfFile = conection.getContentLength();
// input stream to read file - with 8k buffer
InputStream input = new BufferedInputStream(url.openStream(),
8192);
File download = new File(Environment.getExternalStorageDirectory()
+ "/download/");
if (!download.exists()) {
download.mkdir();
}
String strDownloaDuRL = download + "/" + name;
Log.v("log_tag", " down url " + strDownloaDuRL);
FileOutputStream output = new FileOutputStream(strDownloaDuRL);
byte data[] = new byte[1024];
long total = 0;
}
// flushing output
output.flush();
// closing streams
output.close();
input.close();
} catch (Exception e) {
Log.e("Error: ", e.getMessage());
}
return 0;
}
protected void onPostExecute(String file_url) {
// Do after downloaded file
}
}