【xgplayer】xgplayer填坑记 | xgplayer全屏与css全屏冲突

问题所在

使用css全屏后,再使用播放器全屏会出现问题

  • 当有css全屏播放器全屏时,如下图

  • 当使用css全屏时,可正常显示,如下图
    在这里插入图片描述

  • 使用css全屏后,再使用播放器全屏,依然没问题(使用播放器全屏后会自动隐藏css全屏按钮),如下图
    在这里插入图片描述

  • 但当再次缩小播放器全屏时就出现问题了,视频播放器居然飞不见了,只留下个按钮,如下图:
    在这里插入图片描述

解决问题

  • 思路
    1. 使用css全屏时隐藏播放器全屏按钮
    2. 关闭css全屏时再显示播放器全屏按钮
<template>
    <div id="player"></div>
</template>
<script setup>
import { onMounted } from 'vue';
// 1. xgplayer导入播放器
import Player from 'xgplayer/dist/simple_player';

//2. 导入css全屏按钮
import cssFullscreen from 'xgplayer/dist/controls/cssFullscreen';

// 3. 导入播放器自带工具
import { toggleClass } from 'xgplayer/src/utils/util';

// 4. 播放器配置
const playerOpts = {
    id: 'player',//播放器元素id
    url: '/public/video/4.mp4',//视频地址 
    // 移动端重要配置
    // 对于9:16的视频友好
    cssFullscreen: true,

    // 菜单控件
    controlPlugins: [
        cssFullscreen,//css全屏按钮
    ],
};

// 一定要在onMounted创建播放器实例,不然会出错
onMounted(() => {
	// 5. 创建播放器实例
    const player = new Player(playerOpts)

    // 6、 实例播放器加载完毕,重点:只需要加载一次即可
    player.once('ready', () => { 
         //7. 获取全屏按钮
         const fullScrBtn = document.querySelector('#player .xgplayer-fullscreen');

         // 8. 进入样式全屏后隐藏全屏按钮
         player.on('requestCssFullscreen', function () {
             toggleClass(fullScrBtn, 'hide')
         });

         // 9. 退出样式全屏后显示全屏按钮
         player.on('exitCssFullscreen', function () {
             toggleClass(fullScrBtn, 'hide')
         })
    })
})

</script>

<style scoped>
/* 10. css隐藏样式 */
#player>>>.hide {
    visibility: hidden;
}
</style>

最终效果展示

问题完美解决

1. 使用css全屏隐藏播放器全屏

2. 退出css全屏显示播放器全屏

在这里插入图片描述


后记

css全屏按钮播放器全屏按钮用其中一个就可以了呗

:只用一个确实没问题,但视频比例有多种,如16:9、9:16、横屏、竖屏等等,特别是在移动端播放器全屏合适16:9的视频。播放9:16的视频大大降低视觉效果,如下图。
在这里插入图片描述


  • 如果用css全屏播放9:16的视频效果就很好,如下图

在这里插入图片描述


End

2023/3/7 17:59 辑


2023/3/9 23:15 一改


2023/3/10 10:55 二改


推荐

  1. 【Xgplayer】xgplayer自定义截屏按钮 | xgplaye截屏功能
  2. 【Xgplayer】xgplayer基本使用
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值