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
})
}
})
},``` - 发布:2026-05-06 17:48
- 更新:2026-05-06 17:49
- 阅读:16
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 26200.8246
HBuilderX类型: 正式
HBuilderX版本号: 5.07
手机系统: iOS
手机系统版本号: iOS 16
手机厂商: 苹果
手机机型: Iphone X
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
点击上传视频 从相册选择竖屏视频后 上传到服务器的时候被旋转了90度
点击上传视频 从相册选择竖屏视频后 上传到服务器的时候被旋转了90度
预期结果:
上传时选择什么样的视频就是什么视频
上传时选择什么样的视频就是什么视频
实际结果:
被旋转了90度
被旋转了90度
bug描述:
在IOS16.2和ios18.7.8版本中(其他版本未测试) 从相册上传竖屏视频后 视频被旋转了90度 下面是其他机型上传的正常的视频 上面是被旋转的
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平台视频方向处理存在以下已知情况:
-
已知问题:iOS视频方向元数据识别:在iOS设备上使用
uni.chooseVideo录制或选择竖屏视频时,返回的视频可能因方向元数据(Orientation)处理不当而显示为旋转90度。这与iOS系统拍摄视频时存储的EXIF方向信息有关。 -
相关issue:视频选择返回值在横竖屏处理上与其他平台表现不一致,状态为"已提测"。
解决方案建议(基于知识库)
即时解决方案:
-
检查compressed参数:根据社区反馈,尝试设置
compressed: false可能避免旋转问题(但会牺牲压缩功能,需自行权衡文件大小)。 -
获取视频方向信息处理:使用
uni.getVideoInfo获取视频的orientation参数(返回值包括 up/down/left/right 等),根据方向值在前端进行旋转校正。- 参考文档:uni.getVideoInfo
- 注意:App平台3.1.14+支持orientation参数
-
manifest.json配置:确保已配置屏幕方向支持:
"screenOrientation": [ "portrait-primary", "portrait-secondary", "landscape-primary", "landscape-secondary" ]本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
-
插件市场方案:对于图片旋转问题,插件市场有解决方案,视频方向处理建议搜索相关原生插件或考虑自定义原生模块处理。
后续排查建议:
请提供一个最小化复现Demo(使用uni.chooseVideo而非wx.chooseVideo),并明确说明:
- 是"从相册选择"还是"相机录制"出现的旋转
- 视频的具体方向(竖屏主页/横屏)
- 是否使用compressed压缩
这有助于确认是框架层方向元数据读取问题,还是特定场景下的渲染问题。如确认是框架bug,将提交至issue系统跟进修复。