1***@qq.com
1***@qq.com
  • 发布:2026-05-06 17:48
  • 更新:2026-05-06 17:49
  • 阅读:16

【报Bug】在IOS 16.2版本和18.7.8版本里 上传视频被旋转了90度

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 5.07

手机系统: iOS

手机系统版本号: iOS 16

手机厂商: 苹果

手机机型: Iphone X

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

            UploadVideo() {  
                let that = this  
                uni.chooseVideo({  
                    sourceType: ['album'],  
                    maxDuration: 60,  
                    camera: 'back',  
                    success(res) {  
                        console.log(res)  
                        let message = wx.$app.createVideoMessage({  
                            // to: that.$store.getters.toAccount,  
                            // conversationType: that.$store.getters.currentConversationType,  
                            to: that.id,  
                            conversationType: 'C2C',  
                            payload: {  
                                file: res  
                            },  
                            cloudCustomData:that.quote_value == null ? '' : JSON.stringify(that.quote_value),  
                        })  

                        console.log('发送消息',message)  

                        if(that.quote_value != null){  
                            that.quote_value = null  
                        }  
                        wx.$app.sendMessage(message).then(res=>{  
                            that.$store.commit('sendMessage', message)  
                            that.UploadTypeShow = false  
                        }).catch((err) => {  
                            console.log('err11111',JSON.stringify(err))  
                            uni.showToast({  
                                title: err.message,  
                                icon: 'none',  
                                duration: 2000  
                            })  

                            that.UploadTypeShow = false   
                            // that.UploadTypeShow = false  
                        })  

                    }  
                })  
            },```

操作步骤:

点击上传视频 从相册选择竖屏视频后 上传到服务器的时候被旋转了90度

预期结果:

上传时选择什么样的视频就是什么视频

实际结果:

被旋转了90度

bug描述:

在IOS16.2和ios18.7.8版本中(其他版本未测试) 从相册上传竖屏视频后 视频被旋转了90度 下面是其他机型上传的正常的视频 上面是被旋转的

2026-05-06 17:48 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

作为DCloud官方人员,对该bug反馈进行如下评审:

反馈完整性评价

信息完整度:良好,但存在关键代码使用不规范

该反馈包含了基本的版本信息(HBuilderX 5.07、iOS 16、Vue2)、问题描述和复现步骤,但代码示例中存在平台API混用问题:您使用的是微信小程序专有API wx.chooseVideo,而非uni-app跨平台标准API uni.chooseVideo。这可能导致平台兼容性差异,建议先修改为 uni.chooseVideo 进行测试。

复现步骤描述:描述较为简略,缺少关键细节(如视频拍摄时的手机握持方向、是否使用compressed压缩参数、是录制视频还是选择相册视频)。根据知识库中类似问题的经验,iOS视频旋转问题与视频的EXIF方向元数据处理密切相关。

预期结果与实际结果:逻辑合理,预期符合常规需求。

Bug有效性判定

该问题为已知平台兼容性问题,Bug成立。

根据知识库记录,iOS平台视频方向处理存在以下已知情况:

  1. 已知问题:iOS视频方向元数据识别:在iOS设备上使用 uni.chooseVideo 录制或选择竖屏视频时,返回的视频可能因方向元数据(Orientation)处理不当而显示为旋转90度。这与iOS系统拍摄视频时存储的EXIF方向信息有关。

  2. 相关issue:视频选择返回值在横竖屏处理上与其他平台表现不一致,状态为"已提测"。

解决方案建议(基于知识库)

即时解决方案

  1. 检查compressed参数:根据社区反馈,尝试设置 compressed: false 可能避免旋转问题(但会牺牲压缩功能,需自行权衡文件大小)。

  2. 获取视频方向信息处理:使用 uni.getVideoInfo 获取视频的 orientation 参数(返回值包括 up/down/left/right 等),根据方向值在前端进行旋转校正。

    • 参考文档:uni.getVideoInfo
    • 注意:App平台3.1.14+支持orientation参数
  3. manifest.json配置:确保已配置屏幕方向支持:

    "screenOrientation": [  
       "portrait-primary",  
       "portrait-secondary",   
       "landscape-primary",  
       "landscape-secondary"  
    ]  

    本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

  4. 插件市场方案:对于图片旋转问题,插件市场有解决方案,视频方向处理建议搜索相关原生插件或考虑自定义原生模块处理。

后续排查建议

请提供一个最小化复现Demo(使用uni.chooseVideo而非wx.chooseVideo),并明确说明:

  • 是"从相册选择"还是"相机录制"出现的旋转
  • 视频的具体方向(竖屏主页/横屏)
  • 是否使用compressed压缩

这有助于确认是框架层方向元数据读取问题,还是特定场景下的渲染问题。如确认是框架bug,将提交至issue系统跟进修复。

内容为 AI 生成,仅供参考

要回复问题请先登录注册