问题描述
我尝试使用webview播放vimeo视频。但是它看起来不太好,它使屏幕可滚动。 Vimeo提出了另一种使用本机播放的播放方式,但是使用有特定要求
本机播放的基本要求是:
- 用户必须登录。
- 用户必须是视频的所有者。
- 用户必须是PRO或更高级别(或应用程序必须具有“可以访问所有者的视频文件”功能)。
- 令牌必须具有video_files范围。 用户必须是发出请求的API应用的所有者
我没有PRO帐户。我如何使用本机播放只是为了测试,如果一切顺利,那么我将选择vimeo PRO
这是我使用WEBVIEW进行播放的代码
VimeoClient.getInstance().fetchNetworkContent(uri,new ModelCallback<Video>(Video.class) {
@Override
public void success(Video video) {
String html = video.embed != null ? video.embed.html : null;
if(html != null) {
WebView webView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.loadData(html,"text/html","utf-8");
}
}
@Override
public void failure(VimeoError error) {
Log.d(TAG,"failure: ");
}
});
}
还有其他播放视频的方式吗?
解决方法
就我而言,我使用的是 Exoplayer 。 Exoplayer更可定制。您需要做的就是从配置链接中提取URL链接。您可以使用 retrofit 提取视频网址。
BASE_URL =“ https://player.vimeo.com/video/”
您将需要使用如下所示的get方法:
@GET("{id}/{config}")
Call<JsonObject>getVideoLink(@Path("id") String id,@Path("config") String config);
您将从视频链接获取ID。示例:“ https://vimeo.com/123456789/”,此处的ID为:123456789。
JsonObject jsonObject = response.body();
JsonObject req = jsonObject.getAsJsonObject("request");
JsonObject file = req.getAsJsonObject("files");
JsonArray arr = file.getAsJsonArray("progressive");
String url = arr.get(0).getAsJsonObject().get("url").getAsString();
现在您可以使用此 url 进行播放。不要忘记先启动Exoplayer。