我正在使用Phonegap 2.1.0和jQuery Mobile 1.2.0为iOS和Android开发应用程序。 iOS版已经完成,但我们正在试验Android的一些问题......
其中一个应用部分是一个视频列表,它们在弹出窗口中的iframe中打开,在iOS中运行良好但是如果我们在Android设备(带有Android 4.2的Nexus 7)中尝试这个,我们只会得到拳头截图,当我们按播放时,只播放声音,没有视频。我们尝试在webview中使用childbrowser打开iframe网址,结果是一样的。只有当我们在外部浏览器(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选项使视频与移动设备兼容同样。
谢谢!
答案 0 :(得分:1)
<强> 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>
<强> JAVASCRIPT:强>
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;
}