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 视频:播放全屏然后重定向到另一个网页 - 不工作的主要内容,如果未能解决你的问题,请参考以下文章

webview上的Html5视频缺少棒棒糖上的全屏按钮

Android WebView播放html5视频,退出全屏后为啥就是黑屏了

在 iPad 和 Android 平板电脑上强制全屏播放 HTML5 视频?

我可以避免在 iPhone 或 android 上使用 HTML5 的原生全屏视频播放器吗?

Android webview html5 视频自动播放在 android 4.0.3 上不起作用

Android 4.3 上的 YouTube 嵌入式播放器