2012-01-12 2 views
-3

Мне нужен пример загрузки видеофайла из Интернета. и я хочу показать соответствующий индикатор выполнения, сколько файлов было загружено?Загрузите видеофайлы асинхронно в android с индикатором выполнения

+1

были ли вы на самом деле поражены? –

+0

что вы пробовали? –

+0

Спасибо за приведенный выше код, но мне нужно что-то вроде этого. Предположим, у меня есть видеофайлы на link.ok.and, и я хочу загрузить все 9 файлов.ok.and, я хочу показать ход загрузки всех 9 файлов. Где я я застрял, и я хочу показать загрузку, на индикаторе прогресса не идет диалог. –

ответ

3

Попробуйте это -

AndroidAsync.java

import android.app.ProgressDialog; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class AndroAsync extends Activity { 

public static final int DIALOG_DOWNLOAD_PROGRESS = 0; 
private Button startBtn; 
private ProgressDialog mProgressDialog; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    startBtn = (Button)findViewById(R.id.startBtn); 
    startBtn.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v) { 
      startDownload(); 
     } 
    }); 
} 

private void startDownload() { 
    String url = "AnyVideoLink"; 
    new DownloadFileAsync().execute(url); 
} 
@Override 
protected Dialog onCreateDialog(int id) { 
    switch (id) { 
     case DIALOG_DOWNLOAD_PROGRESS: 
      mProgressDialog = new ProgressDialog(this); 
      mProgressDialog.setMessage("Downloading file.."); 
      mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
      mProgressDialog.setCancelable(false); 
      mProgressDialog.show(); 
      return mProgressDialog; 
     default: 
      return null; 
    } 
} 
class DownloadFileAsync extends AsyncTask<String, String, String> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     showDialog(DIALOG_DOWNLOAD_PROGRESS); 
    } 

    @Override 
    protected String doInBackground(String... aurl) { 
     int count; 

     try { 
      URL url = new URL(aurl[0]); 
      URLConnection conexion = url.openConnection(); 
      conexion.connect(); 

      int lenghtOfFile = conexion.getContentLength(); 
      Log.d("ANDRO_ASYNC", "Lenght of file: " + lenghtOfFile); 

      InputStream input = new BufferedInputStream(url.openStream()); 
      OutputStream output = new FileOutputStream("/sdcard/some_photo_from_gdansk_poland.jpg"); 

      byte data[] = new byte[1024]; 

      long total = 0; 

      while ((count = input.read(data)) != -1) { 
       total += count; 
       publishProgress(""+(int)((total*100)/lenghtOfFile)); 
       output.write(data, 0, count); 
      } 

      output.flush(); 
      output.close(); 
      input.close(); 
     } catch (Exception e) {} 
     return null; 

    } 
    protected void onProgressUpdate(String... progress) { 
     Log.d("ANDRO_ASYNC",progress[0]); 
     mProgressDialog.setProgress(Integer.parseInt(progress[0])); 
    } 

    @Override 
    protected void onPostExecute(String unused) { 
     dismissDialog(DIALOG_DOWNLOAD_PROGRESS); 
    } 
} 
} 

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
<TextView 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="@string/hello" 
/> 
<Button 
android:text="Start long running task.." 
android:id="@+id/startBtn" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 
</Button> 
</LinearLayout> 

Разрешение

<uses-permission android:name="android.permission.INTERNET" /> 

Примечание

Проверьте папку сд карты для того, что было загружено, и наслаждайтесь!

Надеюсь, это поможет.

+0

"/sdcard/some_photo_from_gdansk_poland.jpg"? – TryTryAgain

+0

Это путь сохранения с именем. – Praveenkumar

+0

спасибо за помощь, пожалуйста, активируйте мою учетную запись .. это может случиться, что я сделал некоторую ошибку. Пожалуйста, проигнорируйте ее. –

Смежные вопросы