我正在开发一个AngularJS应用程序,我正在嵌入一个YT API的youtube视频。
如果用户将设备旋转到横向模式而没有运气,我想全屏播放视频:(
我的侦听器示例代码:
var supportsOrientationChange = "onorientationchange" in window,
orientationEvent = supportsOrientationChange ? "orientationchange" : "resize";
window.addEventListener(orientationEvent, function() {
alert("Event captured!!");
var el = document.getElementById('youtube_player');
if (el.requestFullscreen) {
el.requestFullscreen();
} else if (el.mozRequestFullscreen) {
el.mozRequestFullscreen();
} else if (el.webkitRequestFullscreen) {
el.webkitRequestFullScreen();
}
}, false);
有人知道用于捕获此类事件的事件是否有任何限制吗?
相同的代码,但将侦听器附加到按钮(使用 touchstart 事件)完成了工作!
谢谢!
你的假设是正确的。进入全屏模式的请求必须由用户启动。单击按钮被视为用户启动,但更改设备的方向则不是。如果为"全屏错误"添加事件侦听器(以及供应商前缀的变体),您将看到对requestFullscreen()的调用正在触发全屏错误。
此外,从IE11开始,Internet Explorer现在支持全屏API。在使用全屏 API 时,还应添加对 msRequestFullscreen 的调用。有关详细信息,请参阅 MSDN 文档:
http://msdn.microsoft.com/en-us/library/ie/dn265028(v=vs.85).aspx
披露:我是致力于Microsoft实现全屏API的团队的一员。