1

我正在使用cordova进行iphone应用程序开发。我正在尝试播放 youtube 视频InAppBrowser。在我的场景中,我有一堆视频缩略图,基本上这些是 youtube 视频。当我们点击它时,它需要打开一个 html 页面,其中包含一个 youtube 播放器Phonegap InAppBrowser,因为我已经写过,

var ref = null;
function openVideo(Id)
{
    try {
         ref = window.open('video.html?id='+Id,'_blank','location=no'); 
         ref.addEventListener('loadstop', LoadStop);
         ref.addEventListener('exit', Close);
    }
    catch (err)    
    {
        alert(err);
    }
}
function LoadStop(event) {
         //some code  
}
function Close(event) {
         ref.removeEventListener('loadstop', LoadStop);
         ref.removeEventListener('exit', Close);
} 

我的 video.html 可以有以下代码,

<!DOCTYPE html>
    <html>
        <head>
            <style>
                body {
                    margin: 0px 0px 0px 0px;
                }
            </style>
        </head>
        <body>
            <div id="player"></div>
            <script>
              var tag = document.createElement('script'); 
              tag.src = "http://www.youtube.com/player_api"; 
              var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
              var player;
              function onYouTubePlayerAPIReady() 
              { 
                 player = new YT.Player('player', 
              {  videoId: 'mQGTXhqVmCQ',
                 playerVars: { 'html5': 1},
                 events: { 'onReady': onPlayerReady,'onStateChange':onPlayerStateChange              } 
    }); 
    } 

    function onPlayerReady(event) { 
    event.target.playVideo();
    }
    function onPlayerStateChange(event) {
            if (event.data == YT.PlayerState.PLAYING) {
    //needs to close in app browser here        
    window.close();
            }
    }
    function stopVideo() {
       player.stopVideo();
    }
     </script>
        </body>
        </html>

这里我附上截图,

在此处输入图像描述

这里我真正面临的问题是,

1、点击缩略图在InAppBroser中打开video.html

2,第一个视频加载和视频在默认的 iphone 浏览器中播放。看到视频后,用户将单击完成按钮返回应用程序。

3,但他在暂停按钮和完成按钮上看到带有 youtube 播放器的 video.html 页面返回应用程序。

这意味着他需要在默认播放器中单击一个完成按钮,在InAppBrowser. 这将成为用户界面错误。所以当他点击播放器中的完成按钮时,我需要支持用户使用应用程序。为此,我需要能够在InAppBrowser播放 youtube 视频时关闭窗口,但我无法获得参考,InAppBrowser因为两者都在不同的页面中。我在 onstatechanged 方法 youtube 播放器中尝试了 window.close()。但这对我没有帮助。InAppBrowser那么当youtube视频播放时我怎么能关闭窗口。请指导我。

4

0 回答 0