如何在 Android 的 WebView 中播放 Dailymotion 视频
Posted
技术标签:
【中文标题】如何在 Android 的 WebView 中播放 Dailymotion 视频【英文标题】:How to play dailymotion video inside a WebView in Android 【发布时间】:2014-07-22 00:08:34 【问题描述】:我需要在 android WebView 中播放来自 daylimotion 的视频,我尝试了几种方法,但没有找到可行的解决方案。 我需要播放的视频类似于以下网址中的视频:
http://www.dailymotion.com/video/x1iepl4_blackfish-full-documentary_animals
我希望 WebView 使用 html 来加载使用 daylimotion 或任何其他方法的视频。我已经成功地为 yputube 视频做了同样的事情,但该解决方案不适用于 dailymotion。
提前致谢。
【问题讨论】:
【参考方案1】:Dailymotion 提供了一个基于 WebView 的 SDK,其中包含您轻松播放视频所需的所有技巧:
dailymotion-sdk-android
自述文件提供了一个简单的集成示例
【讨论】:
【参考方案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);
【讨论】:
这不是我想做的,那只会在WebView中加载整个页面,我只需要加载和播放视频。 @AlejandroCasanova 嗨,你为此做了什么?【参考方案3】:刚刚解决了问题。解决方法如下:
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, "");
那么构建HTML的方法如下:
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;
这会全屏显示视频。
【讨论】:
我试过你的代码,它显示了视频,但它没有播放。进度条无限循环。 . .以上是关于如何在 Android 的 WebView 中播放 Dailymotion 视频的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android 的 WebView 中播放 Dailymotion 视频
如何在 Android 中隐藏 WebView 播放器的视频选项
如何检测您是不是在android java的webview中点击了youtube播放按钮?