我需要播放来自http://www.cda.pl的视频,该视频会从网络服务响应中提取网址,例如http://www.cda.pl/video/videoId,但我的问题是如何从此链接中找到视频网址? Cda是第三方服务器,如youTube但不提供任何API或库,所以请帮助我。
答案 0 :(得分:0)
经过多天RND我找到了解决方案,CDA.PL是第三方服务器,它不提供任何API,并且其视频网址在一天后到期,因此我们不能直接使用视频网址,但每次都来自{{ 3}}使用Webview按照以下方式在Player中播放视频URL。
public void getVideoPath(String path) {
if (progressDialog == null) {
// in standard case YourActivity.this
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("Loading...");
progressDialog.show();
}
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
webView.getSettings().setBuiltInZoomControls(true);
webView.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
webView.setWebViewClient(new WebViewClient() {
//If you will not use this method url links are opeen in new brower not in webview
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
//Show loader on url load
public void onLoadResource(WebView view, String url) {
}
public void onPageFinished(WebView view, String url) {
try {
webView.loadUrl("javascript:window.HTMLOUT.processHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
} catch (Exception exception) {
exception.printStackTrace();
}
}
});
webView.loadUrl(path);
}
class MyJavaScriptInterface {
@JavascriptInterface
@SuppressWarnings("unused")
public void processHTML(String html) {
int start = html.indexOf("class=\"player-video\" src=\"");
int end = html.indexOf("\" preload=\"metadata\"");
String finalUrl = html.substring((start + 26), (end));
playUrl(finalUrl);
}
}
try it.