我正在拼凑一个廉价的应用程序,其中包括"框架"我们的一些网站...非常简单的WebViewClient.直到我点击视频.
该视频是作为HTML5 元素完成的,这些在Chrome,iPhone上工作得很好,现在我们修复了它Android在本机浏览器中运行良好的编码问题.
摩擦:WebView不喜欢它.完全没有.我可以点击海报图片,没有任何反应.
谷歌搜索,我发现这是接近,但似乎是基于'链接'(如在href ...)而不是视频元素.(onDownloadListener似乎没有在视频元素上调用...)
我也看到覆盖onShowCustomView的引用,但似乎没有在视频元素上调用...还没有shouldOverrideUrlLoading ..
我宁愿不进入"从服务器拉xml,在应用程序中重新格式化"......通过在服务器上保留故事布局,我可以更好地控制内容而不强迫人们不断更新应用程序.因此,如果我可以说服WebView处理像本机浏览器这样的标签,那将是最好的.
我显然错过了一些明显的东西..但我不知道是什么.
嗨,我为我的视频网站创建了一个webview应用程序.该网站的设计是为移动用户加载的混合设备.只有与移动设备兼容的视频才会加载到混合动力车上.球员来自Vk,dailymotion,youtube,quicktime.这些视频只能在sdk 11及更高版本上播放,但是当我点击播放器按钮进入全屏时,它只会停止播放视频,而不会启动进入全屏模式.我尽可能多地包含代码,希望有人可以帮助我.我没有取得任何进展,我用Google搜索了它.任何帮助将不胜感激.
(Webviewactivity.java)
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
parentView = (RelativeLayout) findViewById(R.id.parent_rl);
webviewProgress = (ProgressBar) findViewById(R.id.webview_progress);
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setBuiltInZoomControls(true);
webview.getSettings().setAllowFileAccess(true);
webview.setWebViewClient(new MyWebViewClient());
webview.getSettings().setPluginState(WebSettings.PluginState.ON);
webview.loadUrl(URL);
webviewProgress.setProgress(0);
webview.setWebChromeClient(new MyWebChromeClient());
webview.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimetype,
long contentLength) {
mProgressDialog = new ProgressDialog(WebViewActivity.this);
mProgressDialog.setMessage("Downloading...");
mProgressDialog.setIndeterminate(false);
mProgressDialog.setMax(100);
mProgressDialog
.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
DownloadFile downloadFile = new DownloadFile();
downloadFile.execute(url);
}
});
initSlider();
initAdmob();
}
/**
* When when file was chosen
*/
@Override
protected void …Run Code Online (Sandbox Code Playgroud) 我已经实现了youtube api,它在常规计算机浏览器中按预期工作.当我在冰淇淋三明治和姜饼中进行测试时,在库存浏览器(也就是Webkit)上,它的工作方式与我的计算机完全相同.
但是,当我将它加载到WebView时,它会遇到一些非常奇怪的行为.具体来说,它加载所有播放器控件(播放按钮,进度条等)并触发所有正常事件以进行缓冲和播放,但随后不是播放,它只是跳到最后并显示标准的YouTube后播放图标其他视频.如果我点击其中一个图标,它会跳过该视频并直接跳到该视频的末尾.
我将setJavascriptEnabled和setPluginsEnabled都设置为true.我假设我遗漏了一些东西,因为它在股票浏览器中都运行良好,但我很难过它是什么.有没有人在WebView中实现了YouTube视频播放器(或JWPlayer,或者我可以播放youtube视频的任何内容)?如果是这样,请分享您如何设法让它发挥作用.
TIA
[编辑]自发布此消息后,我实施了一个直接从YouTube检索视频流的原生播放器.这是令人难以置信的笨重,因为设备之间的碎片与他们可以/不能播放的文件有关*真的很大,而且由于没有办法让YouTube传递设备模型并让它返回相关的流,所以会发生什么流然后必须从数组中选择.无论如何...重点是这只是一个可怕的方法,我真的很想找出好的'嵌入式播放器解决方案,因为它必须工作,因为它在股票浏览器中工作.这可能是标题问题吗?
可能重复:
WebView和HTML5 <video>
嗨任何人都可以告诉我android webview是否支持html5视频播放?如果是,你能告诉我怎么样?
当我在我的Android设备的默认网络浏览器上查看此页面并单击第一个视频时,它会触发我设备的默认视频播放器.它加载和播放.
但是,当我使用WebView在我的应用程序中查看相同的链接时,它不会打开默认的视频播放器.可能是什么问题呢?
我正在使用此链接中的webview代码.
我也像在文档中所说的那样在全屏模式下制作webview ,使用此代码全屏:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)
编辑:我现在使用以下代码,但仍然没有工作,任何想法?
package com.example.Playmp4OnWebView;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class PlayMp4OnWebView extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
WebView webview = new WebView(this);
setContentView(webview);
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(false);
webSettings.setPluginsEnabled(true);
webSettings.setAllowFileAccess(true);
webview.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String …Run Code Online (Sandbox Code Playgroud) 我正在使用 Android 和 PhoneGap 应用程序,并使用 HTML5 视频标签在我的网页上播放视频。当我播放视频时,视频不可见并且视频不会自行播放。如何在 Android 上播放 HTML5 视频?
下面给出相同的代码
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript" charset="utf-8" src="cordova-1.8.1.js"></script>
<meta http-equiv="content-type" content="text/html; charset=">
<title></title>
</head>
<body >
<video id="video" autobuffer height="240" width="360" onclick="this.play();>
<source src="test.mp4">
<source src="test.mp4" type="video/webm">
<source src="test.mp4" type="video/ogg">
</video>
<div id="msg"></div>
<script type="text/javascript">
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
和活动类的onCreate方法-->>
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final WebView webView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);
webView.getSettings().setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setPluginState(PluginState.ON);
webView.getSettings().setPluginsEnabled(true);
webSettings.setAllowFileAccess(true);
webView.loadUrl("file:///android_asset/www/html5videoEvents.html");
}
Run Code Online (Sandbox Code Playgroud)