如何将视频文件下载到SD卡? [英] How can I download a video file to SD card?
本文介绍了如何将视频文件下载到SD卡?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
String PATHSdcard =/ sdcard / Video /;
public void DownloadFromUrl(String VideoURL,String fileName)
try {URL url = new URL(https://javmed-prod.s3.amazonaws的.com / 666034cbe81045f2a2da50e5205e376b.mp4\" );
文件文件=新建文件(fileName);
long sTime = System.currentTimeMillis();
URLConnection URLcon = url.openConnection();
InputStream is = URLcon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while((current = bis.read())!= -1){
baf.append((byte)current);
}
FileOutputStream fos = new FileOutputStream(PATHSdcard + file);
fos.write(baf.toByteArray());
fos.close();
} catch(IOException e){
Log.d(ERROR .......,e +);
}
感谢任何帮助!
解决方案
尝试此解决方案
package com .Video.ALLTestProject;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Environment;
import android.util.Log;
public class VideoSaveSDCARD extends Activity {
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ProgressBack PB = new ProgressBack();
PB.execute();
}
private class ProgressBack extends AsyncTask< String,String,String> {
ProgressDialog PD;
@Override
protected void onPreExecute(){
PD = ProgressDialog.show(LoginPage.this,null,Please Wait ...,true);
PD.setCancelable(true);
}
@Override
protected void doInBackground(String ... arg0){
downloadFile(http://beta-vidizmo.com/hilton.mp4 , Sample.mp4);
}
protected void onPostExecute(Boolean result){
PD.dismiss();
}
}
private void downloadFile(String fileURL,String fileName){
try {
String rootDir = Environment.getExternalStorageDirectory()
+ File.separator +视频;
文件rootFile = new File(rootDir);
rootFile.mkdir();
URL url = new URL(fileURL);
HttpURLConnection c =(HttpURLConnection)url.openConnection();
c.setRequestMethod(GET);
c.setDoOutput(true);
c.connect();
FileOutputStream f = new FileOutputStream(new File(rootFile,
fileName));
InputStream in = c.getInputStream();
byte [] buffer = new byte [1024];
int len1 = 0;
while((len1 = in.read(buffer))> 0){
f.write(buffer,0,len1);
}
f.close();
} catch(IOException e){
Log.d(Error ....,e.toString());
}
}
I have a video file(.MP4 format) and I want to allow the user to be able to download the video to their SD card.I currently use this code but its not working..
String PATHSdcard = "/sdcard/Video/";
public void DownloadFromUrl(String VideoURL, String fileName)
try { URL url = new URL("https://javmed-prod.s3.amazonaws.com/666034cbe81045f2a2da50e5205e376b.mp4");
File file = new File(fileName);
long sTime = System.currentTimeMillis();
URLConnection URLcon = url.openConnection();
InputStream is = URLcon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}
FileOutputStream fos = new FileOutputStream(PATHSdcard+file);
fos.write(baf.toByteArray());
fos.close();
} catch (IOException e) {
Log.d("ERROR.......",e+"");
}
thanks for any help!
解决方案
Try this Solution
package com.Video.ALLTestProject;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Environment;
import android.util.Log;
public class VideoSaveSDCARD extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ProgressBack PB = new ProgressBack();
PB.execute("");
}
private class ProgressBack extends AsyncTask<String,String,String> {
ProgressDialog PD;
@Override
protected void onPreExecute() {
PD= ProgressDialog.show(LoginPage.this,null, "Please Wait ...", true);
PD.setCancelable(true);
}
@Override
protected void doInBackground(String... arg0) {
downloadFile("http://beta-vidizmo.com/hilton.mp4","Sample.mp4");
}
protected void onPostExecute(Boolean result) {
PD.dismiss();
}
}
private void downloadFile(String fileURL, String fileName) {
try {
String rootDir = Environment.getExternalStorageDirectory()
+ File.separator + "Video";
File rootFile = new File(rootDir);
rootFile.mkdir();
URL url = new URL(fileURL);
HttpURLConnection c = (HttpURLConnection) url.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
FileOutputStream f = new FileOutputStream(new File(rootFile,
fileName));
InputStream in = c.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ((len1 = in.read(buffer)) > 0) {
f.write(buffer, 0, len1);
}
f.close();
} catch (IOException e) {
Log.d("Error....", e.toString());
}
}
这篇关于如何将视频文件下载到SD卡?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文