How to play dailymotion video inside a WebView in Android

空扰寡人 提交于 2019-12-11 03:16:04

问题


I need to play a video from daylimotion in an Android WebView, I've tried with several approuches but haven't found a working solution. The video I need to play is like the one in the following URL:

http://www.dailymotion.com/video/x1iepl4_blackfish-full-documentary_animals

I would appreciate the HTML for the WebView to load the video working with daylimotion or any other approach. I've already done the same for yputube videos successfully, but that solution doesn't work for dailymotion.

Thanks in advance.


回答1:


Dailymotion provides a WebView based SDK that includes all the tricks required for you to play the video easily :

dailymotion-sdk-android

The README provides an easy example of integration




回答2:


protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WebView wv = (WebView) findViewById(R.id.webview1);
    WebSettings webSettings = wv.getSettings();
    webSettings.setJavaScriptEnabled(true);
    wv.getSettings().setJavaScriptEnabled(true);
    wv.getSettings().setAppCacheEnabled(true);
    wv.getSettings().setBuiltInZoomControls(true);
    wv.getSettings().setSaveFormData(true);
    wv.setWebChromeClient(new WebChromeClient());
    wv.setWebViewClient(new Callback());
    wv.loadUrl("http://www.dailymotion.com/video/x1iepl4_blackfish-full-documentary_animals");
}

private class Callback extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return (false);
    }
}



回答3:


Just solved the problem. The solution is as follows:

WebSettings webSettings = this.wvVideo.getSettings();

final String mimeType = "text/html";
final String encoding = "UTF-8";
String html;

webSettings.setJavaScriptEnabled(true);         
webSettings.setPluginState(WebSettings.PluginState.ON);
webSettings.setUserAgentString(null);   
// Taken from the url
String videoId = "x1iepl4_blackfish-full-documentary_animals";
html = this.getHTMLDailyMotion(videoId);            
this.wvVideo.loadDataWithBaseURL("", html, mimeType, encoding, "");

Then the method to build the HTML is as follows:

private String getHTMLDailyMotion(String videoId) {
    String html = "<iframe class=\"youtube-player\" "
            + "style=\"border: 0; width: 100%; height: 95%;"
            + "padding:0px; margin:0px\" "
            + "id=\"ytplayer\" type=\"text/html\" "
            + "src=\"http://www.dailymotion.com/embed/video/" + videoId
            + "?fs=0\" frameborder=\"0\" " + "allowfullscreen autobuffer "
            + "controls onclick=\"this.play()\">\n" + "</iframe>\n";

    return html;
}

This shows the video on full screen.



来源:https://stackoverflow.com/questions/23984962/how-to-play-dailymotion-video-inside-a-webview-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!