4

Ich bin neu in Android, ich entwickle eine Video-Streaming-App, aber ich fest auf Video in App herunterladen, möchte ich das Video im Hintergrund genau herunterladen wie Vimeo App, in Vimeo App, wenn Sie das Video herunterladen möchten, wird es starten das Video herunterladen in einem anderen Bildschirm (Download-Bildschirm) im Hintergrund, wenn Sie in Download-Bildschirm gehen bereits gestartet das Video-Download, eine weitere Sache ist, dass wenn Sie durchlaufen die App und laden das Video im Hintergrund auf den Download-Bildschirm herunter. Wenn Sie den Download-Bildschirm aufrufen, wird Ihnen der aktualisierte Download-Fortschritt angezeigt.Wie kann ich das Video von der URL in backgorund (Android) wie Vimeo App herunterladen

1), um das Video in vimeo enter image description here

2) Download-Bildschirm enter image description here

Bitte geben Sie mir

Vielen Dank im Voraus auf dem Download-Manager Vorschlag dowload

+0

Erwarte nicht, dass jemand den Code für dich schreibt. –

+1

http://stacktips.com/tutorials/android/creating-a-background-service-in-android .. gehen Sie auf den Link Ich denke, das kann Ihr Problem lösen. – Andolasoft

+0

Vielen Dank für die Antwort, aber Ihr Link ist nicht aktiv – Sahadev

Antwort

0

dieser Code für ist auf eine SD-Karte speichern

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

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

weitere Informationen zu diesem Thema How can I download a video file to SD card?

1

Die zugrunde liegende Architektur des Download-Systems in der Vimeo App derzeit in der Mitte des Open-Sourcing-Prozesses ist. Wenn Sie ein paar Wochen warten können, haben Sie Zugriff darauf. Wenn nicht, gibt es viele andere Open-Source "download" Systeme gibt wie:

android-priority-jobqueue

tape

robospice

Letztlich keines dieser exakt auf die Bedürfnisse des met Vimeo App, also haben wir uns entschieden, unser eigenes zu schreiben. Ich werde versuchen, diese Antwort zu aktualisieren, wenn sie verfügbar ist.

+0

Hallo Kevin, Sie haben erwähnt, dass Vimeo App in der Mitte des Open Source-Prozesses ist, also möchte ich wissen, dass es jetzt in Open Source verfügbar ist? –

0

1) Download Manager

Der Android-Download-Manager wurde in Android 2.3 als Dienst eingeführt, um den Umgang mit langen Laufzeit-Downloads zu optimieren.

Der Download-Manager behandelt die HTTP-Verbindung und überwacht Verbindungsänderungen. Es ist eine gute Übung, Download zu verwenden.

Manager in den meisten Situationen, insbesondere wenn ein Download wahrscheinlich im Hintergrund zwischen Benutzersitzungen fortgesetzt wird.

Instanzen dieser Klasse sollten über getSystemService (String) abgerufen werden, indem DOWNLOAD_SERVICE übergeben wird.

Apps, die Downloads über diese API anfordern, sollten einen Broadcast-Empfänger für ACTION_NOTIFICATION_CLICKED registrieren, damit dieser entsprechend reagiert, wenn der Benutzer auf einen laufenden Download in einer Benachrichtigung oder über die Benutzeroberfläche für Downloads klickt.

2) einen Service im

A Vordergrund Service Vordergrund Laufen ist ein Dienst, der von etwas zu sein, der Benutzer betrachtet hat aktiv bewusst ist und somit kein Kandidat für das System, wenn wenig Speicher zu töten. Ein Vordergrunddienst muss eine Benachrichtigung für die Statusleiste bereitstellen, die unter der Überschrift "fortlaufend" platziert ist. Dies bedeutet, dass die Benachrichtigung nicht zurückgewiesen werden kann, wenn der Dienst nicht beendet oder aus dem Vordergrund entfernt wird.

Zum Beispiel sollte das Herunterladen eines Videos von einem Dienst so eingestellt werden, dass es im Vordergrund ausgeführt wird, da der Benutzer sich dessen Operation bewusst ist. Die Benachrichtigung in der Statusleiste zeigt möglicherweise den aktuellen Download an und ermöglicht dem Benutzer, eine Aktivität zur Interaktion mit dem Download-Prozess zu starten.

Um anzufordern, dass Ihr Dienst im Vordergrund ausgeführt wird, rufen Sie startForeground() auf. Diese Methode verwendet zwei Parameter: eine ganze Zahl, die die Benachrichtigung eindeutig identifiziert, und die Benachrichtigung für die Statusleiste.

Zum Beispiel:

Notification notification = new Notification(R.drawable.icon,  getText(R.string.ticker_text), 
    System.currentTimeMillis()); 
Intent notificationIntent = new Intent(this, ExampleActivity.class); 
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,  notificationIntent, 0); 
notification.setLatestEventInfo(this, getText(R.string.notification_title), 
    getText(R.string.notification_message), pendingIntent); 
startForeground(ONGOING_NOTIFICATION_ID, notification); 

Um den Dienst von dem Vordergrund zu entfernen, rufen stopForeground(). Diese Methode akzeptiert einen booleschen Wert, der angibt, ob die Statusleistenbenachrichtigung ebenfalls entfernt werden soll. Diese Methode stoppt den Dienst nicht. Wenn Sie jedoch den Dienst stoppen, geben Sie den Code, den Sie versucht haben, zusammen mit den darin enthaltenen Problemen ein.