使用Retrofit从Url下载视频

时间:2014-06-19 13:53:48

标签: android video-streaming download retrofit

我正在使用Retrofit来使用Web服务,到目前为止它很棒。但Retrofit是否提供了从URL下载视频的方法?

我查看了此链接,但@Streaming注释不再可用。Retro fit Image download

2 个答案:

答案 0 :(得分:15)

是的,你可以使用从版本1.6.0开始提供的@Streaming注释。确保使用该版本。

正如changelog中所述: 新增:响应类型的@Streaming将在传递之前跳过将主体缓冲到byte []。

interface Api {        
    @Get("path/to/your/resource") 
    @Streaming
    Response getData();
}

然后你应该能够直接从InputStream直接流式传输

Response response = api.getData()
InputStream is = response.getBody().in();
// stream your data directly from the InputStream!

请记住,为简单起见,我的示例是同步的。

答案 1 :(得分:2)

要完成@Miguel Lavigne,这里的答案是如何使用Retrofit 2:

interface Service {
    @GET("path/to/your/resource")
    @Streaming
    Call<ResponseBody> getData();
}


Call<ResponseBody> call = service.getData();
try {
    InputStream is = call.execute().body().byteStream();
    (...)
} catch (IOException e) {...}