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()。此方法采用布尔值,指示是否删除状态栏通知。此方法不会停止该服务。但是,如果您停止服务