安卓vimeo视频下载器



我想在VideoView中播放vimeo视频,但这里有问题。

在桌面上下载视频的步骤如下(基于 ossguy.com 脚本):

  • 获取第 vimeo.com/XXXClip_id 页(使用 67216430 进行测试)
  • 解析网页并获取签名和时间戳
  • player.vimeo.com/play_redirect?clip_id=XXXClip_id&sig=5e23c571c4032abd7507368237f43a2a&time=1378707147&quality=hd&&codecs=H264,VP8,VP6&type=moogaloop_local&embed_location=的形式发送请求(SIG和时间在上面获得)
  • 上述请求将开始从网页下载,响应标头包含"位置"标头,其中包含 http://pdl.vimeocdn.com/70693/759/167687374.mp4?aksessionid=5e23c571c4032abd7507368237f43a2a&token=1378715414_ca8e14d352c93df0d33bbbadc3c888ac 形式的视频URL

我想在 android 中重复相同的步骤,因为从上一步获得的 URL 可以使用 VideoView 播放。但问题是当从步骤 3 发送相同的请求时,响应不包含"位置"标头。有什么想法吗?

如果有人需要答案,我发布了我的解决方案。下面是我的函数 httpRequest(),我在每一步中都使用它来获取页面和响应标头。我假设我在使用 DefaultHTTPClient 时遇到了重定向问题,因为"位置"标头将在步骤 3 中给出,实际上应该重定向到其中。

public URLConnection httpRequest(String path) {
    HttpURLConnection conn = null;
    try {
        URL url = new URL(path);
        conn= (HttpURLConnection) url.openConnection();
        conn.setInstanceFollowRedirects(false);  //you still need to handle redirect manully.
        HttpURLConnection.setFollowRedirects(false);
        conn.setReadTimeout(5000);
        conn.addRequestProperty("Accept-Language", "en-US,en;q=0.8");
        conn.addRequestProperty("User-Agent", "Mozilla/5.0");
        conn.addRequestProperty("Referer", "google.com");
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return conn;
}

在安卓中

首先在你的项目中添加io.vov.vitamio.widget包。

  1. 然后在xml布局文件中定义视频视图...

  2. 然后在 java 文件中使用此代码。确保导入 vimeo 软件包中可用的软件包

    videoView.setVideoURI(Uri.parse(path));

    videoView.setMediaController(new MediaController(this));

    videoView.requestFocus();

    videoView.start();

最新更新