Android Vimeo嵌入Phonegap+;安卓4.2
我正在用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还标记了使视频与移动设备兼容的选项 谢谢 HTMLAndroid 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
<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;
}