关于PhoneGap inappbrowser视频播放停止

时间:2013-02-21 19:09:30

标签: cordova

我使用的是PhoneGap 2.4.0。对于Android应用程序。

当我用inappbrowser打开外部网页(包含youtube视频)时,视频播放效果不错。 但是在通过完成按钮关闭网页后,音频播放不会停止。 为了停止视频声音,我不得不关掉手机。

这对我来说是个大问题。 最后一个星期,我试图解决它。

我可以得到一些帮助吗?


这是我的代码。

.......................

  function chamgae(juso) {
        var ref = window.open(juso, '_blank', 'location=yes');
        ref.close();
        }
..........................

<a href="#" onclick="chamgae('http://m.youtube.com')">

..........................

或者

.......................

      function chamgae(juso) {
            window.open(juso, '_blank', 'location=yes');
            }
    ..........................

    <a href="#" onclick="chamgae('http://m.youtube.com')">

    ..........................

4 个答案:

答案 0 :(得分:0)

打开InAppBrowser后你做了.close()吗。

var ref = window.open(url, '_blank', 'location=no');
ref.close();

我删除了.close()代码,我遇到了与继续播放相同的问题。这应该可以解决你的问题。

答案 1 :(得分:0)

您想要做的是将_blank设置为_self,这会导致它在您返回时停止。我有同样的问题,这是我发现解决这个问题的唯一问题。

答案 2 :(得分:0)

可以跟踪Web视图的焦点或模糊事件。您只需要将监听器添加到窗口中,如下所示: -

var win = window.top;
win.onfocus = function() { };
win.onblur  = function() { fnDoSomething() };
function fnDoSomething(){
player=$f(document.getElementById('player_1'));
player.api('pause');
}
只要Web视图失去焦点,就会调用win.onblur,可以在该侦听器中执行任何操作。 如上例所示,我称之为vimeo播放器的“暂停”方法。

祝你好运

答案 3 :(得分:0)

从SO尝试了几个解决方案后,我终于找到了一个适用于Win10的解决方案:

var ref = window.open(file, '_blank', 'location=yes,hardwareback=yes,fullscreen=yes');
ref.addEventListener('loadstop', function () {
    ref.executeScript({ file: "videofix.js" });
});

videofix.js:

var video = document.getElementsByTagName("video")[0];

let videoStopped = false;
// is executed every 100ms
var id = window.setInterval(function () {
    if (document.hidden && !videoStopped) {
        video.pause();
        videoStopped = true;
        // stop execution of this method
        window.clearInterval(id);
    }
}, 100);