4

我新的機器人,我正在開發一個視頻流媒體應用,但即時通訊卡上的應用程序下載的視頻,我想下載的背景的視頻詳細像vimeo應用程序,在vimeo應用程序,如果你想下載視頻,它會在另一個屏幕(下載屏幕)在後臺開始視頻下載,如果你去下載屏幕它已經開始視頻下載,還有一件事是,如果您遍歷應用程序,它仍然在下載屏幕中下載後臺視頻,當您到達下載屏幕時,它會顯示更新的下載進度。如何從網址下載視頻backgorund(安卓)像VIMEO應用

1)下載中心中的視頻VIMEO enter image description here

2)下載屏幕enter image description here

請給我建議在下載經理提前

感謝

+0

請發佈您嘗試的代碼以及其中的問題。不要指望有人爲你寫代碼。 –

+1

http://stacktips.com/tutorials/android/creating-a-background-service-in-android ..去鏈接,我認爲這可能會解決您的問題。 – Andolasoft

+0

感謝您的回覆,但您的鏈接不活躍 – Sahadev

回答

0

這個代碼是保存到SD卡

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

此線程中的更多信息How can I download a video file to SD card?

1

Vimeo應用程序中的下載系統的底層架構目前處於開源過程中。如果您可以等待幾個星期,您將可以訪問它。如果沒有,有很多其他的開源的「下載」系統離開那裏如:

android-priority-jobqueue

tape

robospice

最終,這些都不滿足的具體需求Vimeo應用程序,所以我們決定寫我們自己的。我會嘗試在有可用時更新此答案。

+0

您好凱文,你已經提到,Vimeo應用程序是在開源過程中,所以我想知道現在它是可用的開源? –

0

1)下載管理器

Android的下載管理器中的Android 2.3引入作爲服務來優化長時間運行下載的處理。

的下載管理器處理HTTP連接和顯示器連接的變化。這是一個使用下載的好習慣。

經理在大多數情況下,特別是在下載可能會繼續在用戶會話之間的背景。這個類的

實例應該通過getSystemService(字符串)通過傳遞DOWNLOAD_SERVICE來獲得。

應用通過這個API請求下載要註冊的廣播接收器,用於當用戶點擊在通知或從下載UI運行下載ACTION_NOTIFICATION_CLICKED適當地處理。

2)運行在前臺

前臺服務的服務是一個被認爲是東西服務的用戶正在積極瞭解的,因此不爲系統殺死時內存不足的候選人。前臺服務必須爲位於「正在進行」標題下的狀態欄提供通知,這意味着除非服務停止或從前臺移除,否則不能撤消通知。

例如,從服務下載視頻應設置爲在前臺運行,因爲用戶明確知道其操作。狀態欄中的通知可能會指示當前的下載並允許用戶啓動與下載過程交互的活動。

要請求您的服務在前臺運行,請調用startForeground()。此方法有兩個參數:唯一標識通知的整數和狀態欄的通知。

例如:

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

要從前景刪除服務,調用stopForeground()。此方法採用布爾值,指示是否刪除狀態欄通知。此方法不會停止該服務。但是,如果您停止服務