2011-10-19 19 views
5

ビデオファイルを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"); 
      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+""); 
    } 

..私はビデオファイル(.MP4形式)を持っていると私は、ユーザーが現在、このコードを使用するが、そのが動作していない彼らのSD card.Iにビデオをダウンロードすることができるようにしたいです助けてくれてありがとう!

+1

を試してみてください? – user370305

+0

ビデオのソースはどこですか?それはhttpサーバーでホストされていますか? – momo

+1

http://stackoverflow.com/questions/3692252/android-how-do-i-download-a-video-file-to-sd-card可能重複します。 –

答えて

12

このソリューション以前に何をしようとしなかった

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()); 
    } 

} 
+1

setDoOutputのANSを見てみましょう真実);アイスクリームサンドイッチでは動作しません – Nepster

0
   URL url = new URL(mp4url); 


       //Open a connection to that URL. 
       HttpsURLConnection con = (HttpsURLConnection) 

       int response =con.getResponseCode(); 


       InputStream is = con.getInputStream(); 
       BufferedInputStream inStream = new BufferedInputStream(is, 1024 * 5); 
       FileOutputStream outStream = new FileOutputStream(new File(Environment.getExternalStorageDirectory() + "/" + "mnt/sdcard/17.mp4")); 
       byte[] buff = new byte[7 * 1024]; 

       int len; 
       while ((len = inStream.read(buff)) != -1) 
       { 
        outStream.write(buff,0,len); 
       } 
       //clean up 
       outStream.flush(); 
       outStream.close(); 
       inStream.close(); 
+0

私はこのコードを試してみました。 –

関連する問題