【发布时间】:2014-03-28 06:53:08
【问题描述】:
我无法让 Flowplayer 在 Android 上的 WebView 中自动播放视频。如果按下 HTML 内播放按钮,视频可以正常播放,但不会自行启动。这似乎与 Chrome 相关,因为自动播放在 Android Chrome 浏览器中也不起作用。它可以在现有的 Android 浏览器和用于 (Linux) 桌面的 Chrome 中运行。
我看到this page 建议添加一个 WEBM 文件以使 MP4 内容正常工作,但它没有帮助。我还看到 this page 提到使用新设置 setMediaPlaybackRequiresUserGesture(),但这也没有帮助。
有没有人在 Android WebView 中使用自动播放功能?
这是我的测试代码,可将应用程序提炼为基本要素。
package com.example.testautovideo;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webview = new WebView(this);
setContentView(webview);
webview.setWebChromeClient(new WebChromeClient());
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setLoadsImagesAutomatically(true);
// webview.getSettings().setMediaPlaybackRequiresUserGesture(false); // didn't help
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
webview.loadUrl(THE_URL);
}
}
这是我网页的来源。 Flowplayer 和 jQuery 调用适用于标准安装。 Flowplayer 库是最新的免费版本; jQuery 库是最新的生产版本。
<!DOCTYPE HTML>
<html>
<head>
<meta name='viewport' content='width=device-width,initial-scale=1,maximum-scale=1,target-densitydpi=device-dpi'>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="ws:skip" value="false" />
<title>Autoplay Test</title>
<link rel="stylesheet" type="text/css" href="src/js/flowplayer/skin/minimalist.css">
<script type="text/javascript" src="src/js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="src/js/flowplayer/flowplayer.min.js"></script>
<script>
$(document).ready(function(){
function playVideo(){
var player = flowplayer($('#theVideo'));
player.play();
}
setTimeout(playVideo,10);
});
</script>
<style>
body {
margin:0;
padding:0;
background:#000;
}
#wrapper .flowplayer {
width:640px;
height:360px;
}
#wrapper {
width:640px;
height:360px;
background:#000;
margin:30px auto;
}
</style>
</head>
<body>
<div id="wrapper">
<div class="flowplayer" id="theVideo">
<video preload="none" autoplay>
<source type="video/webm" src="video_1.webm">
<source type="video/mp4" src="video_1.mp4">
</video>
</div>
</div>
</body>
</html>
我知道链接可能会过时,但这里是该网页的a copy,其中安装了正常工作的 Flowplayer 和 jQuery。
【问题讨论】:
标签: android jquery android-webview flowplayer