Android 4 上的 html5 视频:播放全屏然后重定向到另一个网页 - 不工作
Posted
技术标签:
【中文标题】Android 4 上的 html5 视频:播放全屏然后重定向到另一个网页 - 不工作【英文标题】:html5 video on Android 4: play fullscreen then redirect to another webpage - not working 【发布时间】:2012-05-30 07:03:03 【问题描述】:我正在为 android 4 智能手机设计一个 html5 页面,其中包含一个 3gpp(或 mp4)视频,打开时必须自动全屏播放;视频结束时应重定向到另一个网址。
一些谷歌搜索告诉我,在 Android 4 上不再允许自动播放,所以我选择显示海报图像,用户必须点击才能开始播放视频。 那么:
-
调用全屏模式
视频应该自动开始
(确实是由用户点击海报图片开始的)
视频播放完毕后,Android 应退出全屏
最后将用户重定向到另一个页面。
2 和 3 不起作用:调用全屏后,用户必须再次“单击”以开始视频,当视频结束时 exitfullscreen 不起作用(屏幕为黑色,用户必须按手机上的“返回”键退出来自手机的视频播放器)。
看起来video.webkitExitFullScreen()
和 video.play()
在 Android 4 上被忽略了。
这是我正在使用的 html5 标记和 javascript 代码,您能帮我指点解决方案吗?
谢谢!
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width; initial-scale=1.0" />
<meta name="description" content="" />
<title>test</title>
<script type="text/javascript">
function videoEnd()
var video = document.getElementById("video");
video.webkitExitFullScreen();
document.location = "http://www.google.com";
function playVideo()
var video = document.getElementById("video");
video.addEventListener('ended', videoEnd, false);
video.webkitEnterFullScreen();
video.play();
</script>
</head>
<body>
<video id="video" poster="../img/image.jpg" onclick="playVideo();">
<source src="../video/videoname.3gp" type="video/3gpp" />
</video>
</body>
【问题讨论】:
video.webkitEnterFullScreen();这对你在 Android 4.1 上有用吗?我对此表示怀疑。 【参考方案1】:我有一些建议可能对你有所帮助,
这将适用于 Android 网络视图应用程序而不是 android 网络应用程序。
您可以创建 android hook up 或 android web view 客户端,将值作为变量(查询字符串)传递并从您拥有所有控制权的 Android 本机播放视频。
请找到播放视频的代码。
enter code here
public void videoPlayer(String path, String fileName, boolean autoplay)
getWindow().setFormat(PixelFormat.TRANSLUCENT);
//the VideoView will hold the video
VideoView videoHolder = new VideoView(this);
//MediaController is the ui control howering above the video (just like in the default youtube player).
videoHolder.setMediaController(new MediaController(this));
//assing a video file to the video holder
videoHolder.setVideoURI(Uri.parse(path+"/"+fileName));
//get focus, before playing the video.
videoHolder.requestFocus();
if(autoplay)
videoHolder.start();
如果您想实现一种明亮的海湾,请联系我,我会为 HTML 5 提供帮助
干杯
【讨论】:
【参考方案2】:我知道这是一个旧帖子,但有人可能正在寻找这个。 就我个人而言,我只是在视频完成后隐藏视频元素(使用简单的 jquery $videoElement.hide()),这会自动将我带回浏览器。
我们已经在多个移动设备(ios 和 Android)上对此进行了测试。
我还有另一个问题,那就是现在我的浏览器似乎是全屏的(这在我的情况下会导致其他问题)。
【讨论】:
除上述之外:经过一番谷歌搜索后,我发现全屏问题的问题如下:隐藏视频元素确实让我从视频播放器回到浏览器。 Android 虽然说 - 为了退出全屏模式 - 需要用户操作(从上到下滑动)。这就是浏览器保持全屏模式的原因。我还没有找到任何解决办法。由于这就是 Android 的工作方式,我们决定在视频播放完毕后,用户必须采取行动退出视频并返回网站。【参考方案3】:我最近遇到了类似的问题。经过数小时的网络搜索后,这是我的工作方式:
在调用“play()”方法之前,使用“load()”方法。所以在你的代码中:
function playVideo()
var video = document.getElementById("video");
video.addEventListener('ended', videoEnd, false);
video.webkitEnterFullScreen();
video.load();
video.play();
我已经在 android 2.2、2.3 和 iPhone 3 上测试过,它可以工作。但是它似乎无法在 android 4.0 上播放。
附言
如果您想在视频播放完毕后重定向,请使用此事件:
var video = document.getElementById("video");
video.addEventListener("ended",doSomething,true);
function doSomething()
//your redirect code here
【讨论】:
【参考方案4】:似乎在更高版本的android中,程序化video.play()
需要WebView
的明确授权。例如
settings.setMediaPlaybackRequiresUserGesture(false);
【讨论】:
以上是关于Android 4 上的 html5 视频:播放全屏然后重定向到另一个网页 - 不工作的主要内容,如果未能解决你的问题,请参考以下文章
Android WebView播放html5视频,退出全屏后为啥就是黑屏了
在 iPad 和 Android 平板电脑上强制全屏播放 HTML5 视频?
我可以避免在 iPhone 或 android 上使用 HTML5 的原生全屏视频播放器吗?