• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >HBuilder教程 > html5视频播放自动全屏,暂停退出全屏等功能

html5视频播放自动全屏,暂停退出全屏等功能

作者:小云菜 字体:[增加 减小] 来源:互联网 时间:2017-05-31

本文主要包含html5视频全屏,html5背景图片全屏,html5 video全屏,html5视频全屏代码,html5 canvas 全屏等相关知识,小云菜希望在学习及工作中可以帮助到您

在参考了html5 video fullScreen全屏实现方式及司徒正美的书《javascript框架设计》287页相关代码后,在Safari上实现了视频播放自动全屏、暂停退出全屏等功能。代码是否兼容其他浏览器,未测

 

var videoF = (function() {
                var tmpV = {};
                var video_playing;
                /**
                 * @description 切换内容列时暂停当前播放的视频
                 */
                function pausedVBeforeChangeLi() {
                    if (video_playing && !video_playing.ended && !video_playing.paused) {
                        video_playing.pause();
                    }
                };
                tmpV.pausedVBeforeChangeLi= pausedVBeforeChangeLi;
                /**
                 * @description 播放全屏 很诡异,这个方法居然不可用
                 * @param {Object} element
                 */
                function launchFullScreen(element) {
                    if (element.requestFullScreen) {
                        element.requestFullScreen();
                    } else if (element.mozRequestFullScreen) {
                        element.mozRequestFullScreen();
                    } else if (element.webkitRequestFullScreen) {
                        element.webkitRequestFullScreen();
                    }
                };
                /**
                 * @description 取消全屏 这个方法也是不可用
                 * @param {Object} elem
                 */
                function cancelFullScrren(elem) {
                    elem = elem || document;
                    if (elem.cancelFullScrren) {
                        elem.cancelFullScrren();
                    } else if (elem.mozCancelFullScreen) {
                        elem.mozCancelFullScreen();
                    } else if (elem.webkitCancelFullScreen) {
                        console.log("webkitCancelFullScreen");
                        elem.webkitCancelFullScreen();
                    }
                };
                /**
                 * @return 返回支持的全屏函数 从网上找到了这段代码,具体网址忘记了,返回支持的全屏方法,在Safari上可用
                 * @param {Object} elem
                 */
                function fullscreen(elem) {
                    var prefix = 'webkit';
                    if (elem[prefix + 'EnterFullScreen']) {
                        return prefix + 'EnterFullScreen';
                    } else if (elem[prefix + 'RequestFullScreen']) {
                        return prefix + 'RequestFullScreen';
                    };
                    return false;
                };
                /**
                 * @description video相关事件的绑定
                 * @param {Object} v
                 */
                function videoEvent(v) {
                    var video = v,
                        doc = document;
                    video.addEventListener('play', function() {
                        //每次只能播放一个视频对象
                        if (video_playing && video_playing !== this) {
                            console.log('multi')
                            pausedVBeforeChangeLi();
                        }
                        video_playing = this;
                        console.log('play');
                        var fullscreenvideo = fullscreen(video);
                        video[fullscreenvideo]();
                    });
                    video.addEventListener('click', function() {
                        //点击时如果在播放,自动全屏;否则全屏并播放
                        console.log('click')
                        if (this.paused) {
                            console.log('paused');
                            this.play();
                        } else {
                            var fullscreenvideo = fullscreen(video);
                            video[fullscreenvideo]();
                        }
                    })
                    video.addEventListener('pause', function(e) {
                        this.webkitExitFullScreen();
                    });
                    video.addEventListener("webkitfullscreenchange", function(e) {
                        //TODO 未侦听到该事件
                        console.log(3);
                        if (!doc.webkitIsFullScreen) { //退出全屏暂停视频
                            video.pause();
                        };
                    }, false);
                    video.addEventListener("fullscreenchange ", function(e) {
                        console.log(31);
                        if (!doc.webkitIsFullScreen) { //退出全屏暂停视频
                            video.pause();
                        };
                    }, false);
                    video.addEventListener('ended', function() {
                        //播放完毕,退出全屏
                        console.log(4)
                        this.webkitExitFullScreen();
                    }, false);
                };
                tmpV.videoEvent = videoEvent;
                return tmpV;
            }());

 

您可能想查找下面的文章:

  • html5视频播放自动全屏,暂停退出全屏等功能

相关文章

  • 2017-05-31Hbuilder移动app 开发微信支付-前后端要点
  • 2017-05-31Hbuilder MUI 打包APP运行非常卡问题解决
  • 2017-05-31Hbuilder MUI 关闭Webview窗口
  • 2017-05-31移动端App混合开发问题汇总分享
  • 2017-05-31mui相机拍照、相册上传图片示例
  • 2017-05-31HBuilder是免费的吗?会收费吗?
  • 2017-05-31MUI扫描功能的实现
  • 2017-05-31mui在软键盘打开的状态下点击返回键软键盘消失,再次点击后返回上一页
  • 2017-05-31MUI 隐藏滚动条
  • 2017-05-31mui安卓、ios 实现上下拉取获取内容,容器里面的超链接失去作用

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • HBuilder开发App教程-推开前端开发App的大门
    • 底部菜单 display:none ,显示是空白(还是占用地方)
    • Hbuilder MUI 微信支付、分享、登陆说明
    • 提升HTML5的性能体验系列之四 使用原生UI(nativeUI)
    • Hbuilder MUI 播放音频–html5+ audio模块
    • hbuilder边改边看模式能不能像H5+一样支持跨域ajax
    • iOS平台-Native.js获取包名
    • mui项目中出现event.returnValue is deprecated. Please use the standard event.preventDefault() instead.
    • mui切换div模式选项卡横向平移特效(借用mui官方图片轮播特效实现)
    • Hbuilder MUI 打包APP运行非常卡问题解决

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有