uni-app 小米11 Ultra,uni.chooseVideo uni.compressVideo plus.zip.compressVideo 视频压缩均失败
uni-app 小米11 Ultra,uni.chooseVideo uni.compressVideo plus.zip.compressVideo 视频压缩均失败
| 信息类别 | 详细信息 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | win10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.2.16 |
| 手机系统 | Android |
| 手机系统版本号 | Android 11 |
| 手机厂商 | 小米 |
| 手机机型 | xiaomi 11 Ultra MIUI 12.5 |
| 页面类型 | vue |
| vue版本 | vue2 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
操作步骤:
- chooseVideo 后 compressVideo
预期结果:
- 压缩成功
实际结果:
- 压缩失败
bug描述:
uni.compressVideo({
src: tempFilePath,
quality: 'low', //'low':低,'medium':中,'high':高
success: (res) => {
uni.hideLoading()
console.log('压缩后',res)
this.videoUrl = res.tempFilePath
},
fail: function (err) {
uni.hideLoading()
console.log(err)
uni.showToast({
title:'视频压缩失败',
icon:'none'
},2000)
}
})
let realFilePath = ''
if(tempFilePath.indexOf("file://") !== -1) {
realFilePath = tempFilePath.split('file://').join('')
}
console.log(realFilePath)
plus.zip.compressVideo({
src: realFilePath?realFilePath:tempFilePath,
quality: 'low'
},(res) => {
uni.hideLoading()
console.log('压缩后',res)
this.videoUrl = res.tempFilePath
},(err) => {
uni.hideLoading()
console.log(err)
uni.showToast({
title:'视频压缩失败111',
icon:'none'
},2000)
})
报错:
{
"code": -99,
"message": "extractor does not contain video and/or audio tracks."
}
更多关于uni-app 小米11 Ultra,uni.chooseVideo uni.compressVideo plus.zip.compressVideo 视频压缩均失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
文件路径有问题
如果有中文编码的,要反编码
更多关于uni-app 小米11 Ultra,uni.chooseVideo uni.compressVideo plus.zip.compressVideo 视频压缩均失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
看下压缩的文件路径是否正确。看错误信息是没找到video类型的文件
回复 1***@qq.com: 已转给相关同学
回复 DCloud_Android_ST: 我也有同样问题
针对小米11 Ultra上视频压缩失败的问题,这个错误信息表明系统无法从视频文件中提取音视频轨道。以下是可能的原因和解决方案:
-
文件路径问题:uni.compressVideo使用的是临时文件路径,而plus.zip.compressVideo需要真实文件路径。确保传递给plus.zip.compressVideo的路径是有效的本地文件路径。
-
文件格式兼容性:某些设备录制的视频格式可能与压缩模块不兼容。建议在压缩前检查视频格式,可以尝试先用uni.getVideoInfo获取视频信息。
-
权限问题:确保应用有足够的存储权限,特别是写入权限。可以在调用压缩前检查并请求权限。
-
临时文件处理:uni.chooseVideo返回的临时文件可能在某些设备上无法直接用于压缩。可以尝试先将文件保存到应用文档目录:
plus.io.resolveLocalFileSystemURL(tempFilePath, (entry) => {
entry.copyTo(plus.io.DOCUMENTS, 'temp.mp4', () => {
// 使用新路径进行压缩
});
});


