YouTube 360 视频 iframe 在移动浏览器中不起作用
YouTube 360 video iframe does not work in mobile browser
我正在尝试为YouTube 360视频获取嵌入式iframe以在我的移动网站上播放 - 它在桌面浏览器上运行良好,但在移动浏览器中,我只能播放平面立体视图。我可以确认它绝对是HTML5播放器
这显然是其他人正在经历的一个未解决的问题。请参阅以下帖子:
- https://productforums.google.com/forum/#!topic/youtube/7sk92Fs1juk
- 让 Youtube 360 度视频在移动设备上工作
因此,我需要这两个潜在问题/解决方案中至少一个的帮助。
1)是否有可能在移动浏览器中使其工作?谷歌的文档建议它应该
供参考 - 这是我的 iframe 代码
<iframe width="1360" height="500" src="https://www.youtube.com/embed/0x16ngo8xfY?autoplay=1&loop=1&playlist=0x16ngo8xfY" frameborder="0" allowfullscreen></iframe>
2)假设不是,强制我的iframe在YouTube移动应用程序中启动的最佳方法是什么,其中360视频确实可以正常工作
谢谢亚历克斯
鉴于缺乏其他响应,万一其他人发现了这一点,我在此期间采用了这个(不幸的是)有点黑客的解决方案,这似乎有效。
if(window.innerWidth < 760){
$('.video').on('click', function( e ) {
e.preventDefault();
//assumes that by forcing window to go to youtube will kick up option to open in app where experience works - plays my full showreel
window.location = "https://www.youtube.com/watch?v=0x16ngo8xfY&list=PLzSXIFcDqpiCiKXMtXtVIHnmor9uUsEhC&autoplay=1";
});
}
<</div>
div class="answers"> 根据YouTube的说法,360视频将在"计算机上最新版本的Chrome,Opera,Firefox或Internet Explorer"上运行:
https://support.google.com/youtube/answer/6178631
这意味着我们可以使用用户代理嗅探,这绝对是次优的,但比 AlexHandy1 建议的检查innerWidth
略好。
function browserSupports360 () {
// YouTube supports 360 videos in a limited set of browsers,
// see https://support.google.com/youtube/answer/6178631
var ua = navigator.userAgent;
// No mobile browser is supported at the moment
if (/Mobile/.test(ua) || /Tablet/.test(ua)) return false;
// Chrome >= 40
if (/Chrome'/[^123][0-9]/.test(ua) && !/Edge'//.test(ua) && !/OPR'//.test(ua)) return true;
// Firefox >= 40
if (/Firefox'/[^123][0-9]/.test(ua)) return true;
// Microsoft Edge
if (/Edge'//.test(ua)) return true;
// Opera >= 30
if (/OPR'/[^12][0-9]/.test(ua)) return true;
return false;
}
YouTube帮助论坛上有一个悬而未决的问题,询问是否可以改用功能检测,您可以对它投赞成票,希望YouTube上的某个人会查看它:
https://productforums.google.com/forum/#!topic/youtube/EON00C4h9w4
简单的, 请参阅在 youtube 上的 360 度视频中检查元素(镶边)。你会看到这不是 视频播放器 .这是一个带有webgl的画布。
当谷歌想在移动设备上工作时,你可以玩它。在此之前,您必须制作自己的360视频播放器。对不起我的坏恩!
看:
http://threejs.org/examples/#canvas_geometry_panorama
您必须制作具有流纹理的webgl全景应用程序,您将获得360视频。 您必须使用全景的球体而不是立方体变体。
您不能使用视频标签 - 100% .
修复火狐桌面:到达关于:配置在火狐的地址栏上,并将webgl禁用设置为假....即使您在Firefox上安装最新版本的更新,仍然必须这样做。如果您卸载 - 安装火狐新版本,默认情况下启用 webgl。
我能够通过更改用户代理以匹配我的MacBook,在Android WebView中获得360度视频。这是我使用的一个:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.86 Safari/537.36
完整的实现包括VideoJS和使用iframe的YouTube扩展。触摸/拖动还不完美,但这是朝着正确方向迈出的一步。
也许您可以覆盖JS导航器的用户代理以达到相同的结果。
- 当我在浏览器中打开HTML文件时,javascript不起作用
- Javascript的某些部分在Chrome中不起作用,但在其他浏览器中可以完美工作
- 为什么简单的Promise语句在浏览器中不起作用
- 用于播放背景音乐的嵌入式flash播放器在IE浏览器中不起作用
- 带有Safari的Javascript;不起作用——所有其他浏览器都起作用
- 使用Javascript的Ajax请求在iPhone浏览器中不起作用
- 谷歌浏览器模式正则表达式在使用setCustomValidity动态创建表单时不起作用
- 为什么我的谷歌浏览器扩展程序在谷歌浏览器版本 41.0.2272.89 中不起作用
- 为什么这个JavaScript在浏览器中不起作用
- 多个 socket.io 客户端连接不起作用(谷歌浏览器,火狐浏览器)
- 脚本在web浏览器控件中不起作用
- 禁用浏览器中的后退按钮不起作用
- 将JSON对象转换为敲除observable在IE8中不起作用,但在所有其他浏览器中都起作用
- jQuery在我的网站上不起作用,但在我的浏览器上起作用
- 角度路由;在浏览器中直接访问URL时不起作用,但在单击时起作用
- 转到顶部按钮在Firefox浏览器中不起作用
- javascript代码在浏览器中不起作用
- JavaScript文件在浏览器中不起作用,但它在代码笔中起作用
- Javascript浏览器通知不起作用
- 浏览器关闭事件 对于火狐浏览器不起作用