uni-app uni.chooseVideo在HbuilderX3.1.11中 一选择视频就出现无内容loading状态

uni-app uni.chooseVideo在HbuilderX3.1.11中 一选择视频就出现无内容loading状态

示例代码:

// 视频上传  
export function uploadVideo() {  
    return new Promise(resolve => {  
        uni.chooseVideo({  
            sourceType: ["album", "camera"],  
            success: path => {  
                const tempFilePath = path.tempFilePath;  
                uni.uploadFile({  
                    url: uploadUrl,  
                    filePath: tempFilePath,  
                    name: "file",  
                    success: res => {  
                        if (res.statusCode !== 200) return console.log("视频上传失败,请重试", res);  
                        console.log(res.data);  
                        resolve(previewUrl + res.data);  
                    },  
                    fail: err => {  
                        if (err.errMsg.includes("timeout")) {  
                            console.log("视频上传超时,请重试", err);  
                        } else {  
                            console.log("视频上传失败,请重试", err);  
                        }  
                    },  
                });  
            },  
            fail: error => {  
                console.log(error);  
            },  
        });  
    });  
}

操作步骤:

  • 从相册选择视频上传视频

预期结果:

  • 上传成功

实际结果:

  • 卡loading状态

bug描述:

uni.chooseVideo在HbuilderX3.1.11中,在雷电模拟器上,之前3.1.9版本是没有任何问题的。一选择视频就出现一个没有任何内容的loading状态。

Image

信息 描述
产品分类 uniapp/App
PC开发环境 Windows
PC开发环境版本号 windows10
HBuilderX类型 正式
HBuilderX版本号 3.1.11
手机系统 Android
手机系统版本号 Android 7.1.1
手机厂商 小米
手机机型 Xiaomi 9 SE
页面类型 vue
打包方式 云端
项目创建方式 HBuilderX

更多关于uni-app uni.chooseVideo在HbuilderX3.1.11中 一选择视频就出现无内容loading状态的实战教程也可以访问 https://www.itying.com/category-93-b0.html

21 回复

你好 ,你这个视频上传还可以正常上传?hbuildx3.1.11 uni.chooseVideo返回绝对路径 真机运行上传视频失败了,我看你是在浏览器调试的,浏览器是正常的,真机运行失败

更多关于uni-app uni.chooseVideo在HbuilderX3.1.11中 一选择视频就出现无内容loading状态的实战教程也可以访问 https://www.itying.com/category-93-b0.html


安卓模拟器调试的

最新版Toast 有Bug,我已切换到3.19,麻烦看下

我暂时先切到上一个版本把

showLoading(“视频上传中…”, 20000); 不加这句代码还有问题吗

我改了下代码依旧不行,看话题最新的代码

回复 程序猿小飞: 嗯 开了视频压缩显示loading

回复 DCloud_Android_ST: 好的,我把默认开启的视频压缩关掉试试

回复 DCloud_Android_ST: 我把视频压缩关掉后,uni.chooseVideo的success和fail回调都不走了,没有反应了

回复 程序猿小飞: 测试什么型号?

回复 DCloud_Android_ST: 雷电安卓模拟器最新版

视频压缩关掉后,uni.chooseVideo的success和fail回调都不走了 这应该是bug 已反馈

回复 DCloud_Android_ST: 好的

是选择完视频之后吗?

现在拍摄完视频还是有黑框旋转,楼主的这个问题,依然没有解决,我得也存在该问题

HBuilderX 3.1.12 已修复

3.1.13还有这个问题

这是一个已知的HBuilderX 3.1.11版本在Android模拟器上的兼容性问题。uni.chooseVideo在部分Android模拟器上会出现无内容loading状态,特别是在雷电模拟器上表现明显。

问题原因: HBuilderX 3.1.11版本对chooseVideo API的底层实现进行了优化,但在Android模拟器环境适配方面存在缺陷,导致视频选择器无法正常显示内容。

解决方案:

  1. 临时降级:将HBuilderX版本降级到3.1.9或3.1.10,这是目前最有效的临时解决方案。

  2. 真机测试:在真实Android设备上测试,该问题通常不会在真机环境中出现。

  3. 等待官方修复:官方已在处理此问题,建议关注后续版本更新。

代码层面检查: 虽然这是环境问题,但仍建议在success回调中添加更完善的错误处理:

uni.chooseVideo({
    sourceType: ["album", "camera"],
    success: path => {
        console.log('选择视频成功:', path);
        // 继续上传逻辑
    },
    fail: error => {
        console.log('选择视频失败:', error);
        uni.hideLoading();
    }
});
回到顶部