uni-app 5+ gallery.pick 选择 195m 视频后 app 崩溃
uni-app 5+ gallery.pick 选择 195m 视频后 app 崩溃
| 信息项 | 内容 |
|---|---|
| 开发环境 | HBuilderX |
| 版本号 | 3.2.2 |
| 项目创建 | 无相关描述 |
示例代码:
pickConfig = {
animation: false,
filename: '_doc/images/',
filter: 'none',
multiple: true,
maximum: 9,
onmaxed: function() {
plus.nativeUI.toast('你最多只能选择' + pickConfig.maximum + '个图片或者视频')
},
popover: {},
selected: [],
system: false,
confirmText: '发送',
compress: true
};
plus.gallery.pick(function(res) {
console.log(res)//这都没走。
},function(e){},pickConfig)
操作步骤:
plus.gallery.pick(function(res) {
console.log(res)//这都没走。
},function(e){},pickConfig)
点击按钮,执行 plus.gallery.pick 选择图片和视频
### 预期结果:
选择成功
实际结果:
app 崩溃
更多关于uni-app 5+ gallery.pick 选择 195m 视频后 app 崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
??这个 bug 凉凉?
更多关于uni-app 5+ gallery.pick 选择 195m 视频后 app 崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html
问题分析:
根据你的描述,plus.gallery.pick 在选择大体积视频(195MB)时导致应用崩溃,且未进入回调函数。这通常与以下原因有关:
- 内存溢出:处理大视频时,系统可能因内存不足而崩溃。
compress: true在视频场景下可能触发压缩操作,进一步加剧内存压力。 - 视频处理超时:系统相册或底层模块处理大文件时耗时过长,引发应用无响应或崩溃。
- HBuilderX 版本兼容性:3.2.2 版本可能存在已知的
gallery.pick处理大文件的缺陷。
解决方案:
- 关闭压缩选项:针对视频选择,建议将
compress设为false,避免立即触发高内存占用的压缩操作。
pickConfig.compress = false;
- 限制文件类型和大小:通过
filter参数限制可选文件类型,或在前端选择后通过回调检查文件大小,若超过阈值则提示用户重新选择。
// 示例:仅允许选择视频
pickConfig.filter = "video";
-
更新开发工具:升级 HBuilderX 至最新稳定版,修复可能存在的底层兼容性问题。
-
分步处理大文件:选择视频后,先获取文件路径,再使用
plus.io接口分段读取或使用后端处理,避免前端一次性加载整个文件。
修改后的配置建议:
pickConfig = {
animation: false,
filename: '_doc/images/',
filter: 'video', // 限制为视频,减少无关文件干扰
multiple: false, // 单次选择大文件时建议关闭多选
maximum: 1,
onmaxed: function() {
plus.nativeUI.toast('最多选择1个视频')
},
popover: {},
selected: [],
system: false,
confirmText: '发送',
compress: false // 关键:关闭压缩
};

