Android Vimeo嵌入Phonegap+;安卓4.2

Android Vimeo嵌入Phonegap+;安卓4.2,android,cordova,video,vimeo,Android,Cordova,Video,Vimeo,我正在用Phonegap 2.1.0和jQuery Mobile 1.2.0为iOS和Android开发一个应用程序。iOS版本已经完成,但我们正在试验Android版本的一些问题 其中一个应用程序部分是视频列表,它们在弹出窗口中的iframe中打开,在iOS中效果很好,但如果我们在Android设备(Nexus 7和Android 4.2)中尝试这一点,我们只能看到第一个屏幕截图,当我们按play时,只播放声音,而不播放视频。我们尝试在webview中使用childbrowser打开ifram

我正在用Phonegap 2.1.0和jQuery Mobile 1.2.0为iOS和Android开发一个应用程序。iOS版本已经完成,但我们正在试验Android版本的一些问题

其中一个应用程序部分是视频列表,它们在弹出窗口中的iframe中打开,在iOS中效果很好,但如果我们在Android设备(Nexus 7和Android 4.2)中尝试这一点,我们只能看到第一个屏幕截图,当我们按play时,只播放声音,而不播放视频。我们尝试在webview中使用childbrowser打开iframe url,结果是一样的。只有当我们在外部浏览器(openExternal)中打开它时,它才能工作

我认为可能是Vimeo的播放器问题,但当我们尝试播放视频时,我们在日志中看到以下错误:

01-08 22:45:12.084:E/libEGL(26580):在没有当前上下文的情况下调用OpenGL ES API(每个线程记录一次)

01-08 22:45:12.094:D/MediaPlayer(26580):无法在客户端打开文件,正在尝试服务器端

我已经搜索了几个小时没有成功,所以我希望有人知道如何让它工作…:/

对于iFrame,我们使用的是Vimeo从每个视频的嵌入部分提供的代码(我不能在这里发布,因为它们是私有的),并且。。。Vimeo还标记了使视频与移动设备兼容的选项

谢谢

HTML

<head>
    <meta charset="utf-8">

    <!--
     | WARNING:
     | For iOS 7, remove the width=device-width and height=device-height attributes.
     | @see https://issues.apache.org/jira/browse/CB-4323
     '-->
    <meta name="viewport" content="width=device-width,height=device-height,target-densitydpi=device-dpi,user-scalable=no,initial-scale=1,minimum-scale=1,maximum-scale=1,minimal-ui">

</head>
<body>
    <div class="close">
        <a href="/cordova:close">fechar</a>
    </div>

    <script id="tmpl-player" type="text/template">
        <iframe id="video" src="https://player.vimeo.com/video/[[video]]?autoplay=1&autopause=1&byline=0&badge=0&title=0&portrait=1&color=333&loop=0" width="100%" height="100%" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
    </script>

    <script>
        var bodyEl = document.querySelector('body');
        var tmplPlayerEl = window.document.getElementById('tmpl-player');
        var tmplPlayer = template(tmplPlayerEl.innerHTML, getURLParams());

        function getURLParams() {
            var query = location.search.substr(1);
            var result = {};
            query.split('&').forEach(function(part) {
                var item = part.split('=');
                result[item[0]] = decodeURIComponent(item[1]);
            });
            return result;
        }

        function template(raw, data, keep404) {
            return raw.replace(/\[{2,}[(\s\uFEFF\xA0a-zA-Z0-9_\./]+\]{2,}/gi, function(match, value) {
                value = match.replace(/^\[{2,}|\s+|\]{2,}$/g, '');
                return typeof data[value] !== 'undefined' ? data[value] : (keep404 ? match : '');
            });
        }

        var newNode = window.document.createElement('div');
        newNode.innerHTML = tmplPlayer;
        bodyEl.appendChild(newNode);
    </script>
</body>

别忘了

我也有同样的问题:(如果Android WebView中的框架很坏,你可能需要找到另一种方式来播放你的Vimeo视频。是的,我知道,但如果我们尝试在儿童浏览器中使用直接url,结果是一样的,所以这次不是iframe问题:(
var fsVideo = window.open('vimeo.html?video='+video, '_blank', 'location=no,zoom=no');
fsVideo.addEventListener('loaderror', onLoadError);
fsVideo.addEventListener('loadstop', onLoadStop);
fsVideo.addEventListener('exit', onExit);
function onLoadError(evt){
    fsVideo.close();
}
function onLoadStop(evt){
    evt.url.match('cordova:close') && fsVideo.close();
}
function onExit(evt){
    fsVideo.removeEventListener('loaderror', onLoadError);
    fsVideo.removeEventListener('loadstop', onLoadStop);
    fsVideo.removeEventListener('exit', onExit);
    fsVideo = null;
}