g***@163.com
g***@163.com
  • 发布:2023-03-29 16:46
  • 更新:2023-03-29 17:03
  • 阅读:276

【报Bug】video组件无法在ios13全屏

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: window10

HBuilderX类型: 正式

HBuilderX版本号: 3.7.9

手机系统: iOS

手机系统版本号: iOS 16

手机厂商: 苹果

手机机型: iphone 13

页面类型: nvue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
<template>  
    <div>  
        <video id='video1' class="video" :src="src" autoplay="false" duration="" controls="true" :danmu-list="list"  
            danmu-btn="true" enable-danmu="true" :loop="true" muted="true" initial-time="" direction="-90"  
            show-mute-btn="true" @play="onstart" @pause="onpause" @ended="onfinish" @error="onfail" @waiting="waiting"  
            @timeupdate="timeupdate" @fullscreenchange="fullscreenchange"></video>  
        <button class="btn" @click="play">播放</button>  
        <button class="btn" @click="pause">暂停</button>  
        <button class="btn" @click="seek">跳转到指定位置</button>  
        <button class="btn" @click="stop">停止</button>  
        <button class="btn" @click="fullScreen">全屏</button>  
        <button class="btn" @click="exitFullScreen">退出全屏</button>  
        <button class="btn" @click="playbackRate">设置倍速</button>  
        <button class="btn" @click="sendDanmu">发送弹幕</button>  
    </div>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
                src: "https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/%E7%AC%AC1%E8%AE%B2%EF%BC%88uni-app%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D%EF%BC%89-%20DCloud%E5%AE%98%E6%96%B9%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B@20181126-lite.m4v",  
                fil: true,  
                list: [{  
                    text: '要显示的文本',  
                    color: '#FF0000',  
                    time: 9  
                }]  
            }  
        },  
        onReady() {  
            this.context = uni.createVideoContext("video1", this);  
        },  
        methods: {  
            onstart(e) {  
                console.log("onstart:" + JSON.stringify(e));  
            },  
            onpause(e) {  
                console.log("onpause:" + JSON.stringify(e));  
            },  
            onfinish(e) {  
                console.log("onfinish:" + JSON.stringify(e));  
            },  
            onfail(e) {  
                console.log("onfail:" + JSON.stringify(e));  
            },  
            fullscreenchange(e) {  
                console.log("fullscreenchange:" + JSON.stringify(e));  
            },  
            waiting(e) {  
                console.log("waiting:" + JSON.stringify(e));  
            },  
            timeupdate(e) {  
                console.log("timeupdate:" + JSON.stringify(e));  
            },  

            play() {  
                this.context.play();  
            },  
            pause() {  
                this.context.pause();  
            },  
            seek() {  
                this.context.seek(20);  
            },  
            stop() {  
                this.context.stop();  
            },  
            fullScreen() {  
                this.context.requestFullScreen({  
                    direction: 90  
                });  
            },  
            exitFullScreen() {  
                this.context.exitFullScreen();  
            },  
            sendDanmu() {  
                this.context.sendDanmu({  
                    text: '要显示的弹幕文本',  
                    color: '#FF0000'  
                });  
            },  
            playbackRate() {  
                this.context.playbackRate(2);  
            }  
        }  
    }  
</script>  

<style>  
    .video {  
        width: 750rpx;  
        /* #ifdef H5 */  
        width: 100%;  
        /* #endif */  
        height: 400rpx;  
        background-color: #808080;  
    }  

    .btn {  
        margin-top: 5px;  
        margin-bottom: 5px;  
    }  
</style>  

操作步骤:

完整代码已上传至附件

预期结果:

实现全屏播放

实际结果:

实际结果是无法全屏播放,页面样式错乱

bug描述:

video组件在ios13上无法全屏

2023-03-29 16:46 负责人:无 分享
已邀请:
FullStack

FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866

manifest.json 增加 "screenOrientation" : [ "portrait-primary", "landscape-primary" ],

云打包之后生效

  • g***@163.com (作者)

    问题已解决,感谢大佬

    2023-03-29 17:00

g***@163.com

g***@163.com (作者)

解决方法:manifest.json文件 => 源码视图 => app-plus属性添加这段代码 ```javascript
"screenOrientation": [ //可选,字符串数组类型,应用支持的横竖屏
"portrait-primary", //可选,字符串类型,支持竖屏
// "portrait-secondary", //可选,字符串类型,支持反向竖屏
"landscape-primary", //可选,字符串类型,支持横屏
"landscape-secondary" //可选,字符串类型,支持反向横屏
],


详情参考: https://uniapp.dcloud.net.cn/collocation/manifest-app.html#full-manifest  
配置完重新打包或重新自定义基座即可

要回复问题请先登录注册