怼碗胡辣汤吧 2024-08-01 15:36 采纳率: 0%
浏览 10

小程序保存视频,只有在开发者调试才能,退出就无法保存


onDown(videoUrl) {
                console.log(videoUrl);
                uni.showLoading({
                    title: '正在下载',
                    icon: 'loading',
                    duration: 10000,
                });
                uni.downloadFile({
                    url: videoUrl,
                    success: function(res) {
                        if (res.statusCode == 200) {
                            // 下载成功后保存到本地相册
                            uni.saveVideoToPhotosAlbum({
                                filePath: res.tempFilePath,
                                success: function() {
                                    uni.showToast({
                                        title: '保存成功',
                                        icon: 'success'
                                    })
                                    uni.hideLoading();
                                },
                                fail: function(error) {
                                    uni.showToast({
                                        title: "保存失败",
                                        icon: 'none'
                                    })
                                    uni.hideLoading();
                                }
                            })
                        } else {
                            uni.showToast({
                                title: "保存失败",
                                icon: 'none'
                            })
                            uni.hideLoading();
                            console.log('下载失败', res.statusCode);
                        }
                    },
                    fail: function(error) {
                        console.log('下载失败', error);
                    }
                })
            },
  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 优质创作者: Java、后端开发技术领域 2024-08-06 10:57
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述:给定的代码块是一个包含下载视频并保存到本地相册的函数,其中包括了下载视频、保存到相册成功和失败的处理逻辑。请问在这段代码中有什么问题,以及如何改进? 问题分析及解决方案:
    1. 在代码中,下载视频成功后保存到相册的操作没有做错误处理,即使保存到相册失败也不会有任何提示。为了提高用户体验,应该在保存到相册失败时给出相应的提示。
    2. 在下载视频过程中,没有实现进度条展示和用户体验,可以考虑添加下载进度的展示。
    3. 在下载失败时,只是在控制台打印了错误信息,但没有给用户任何提示,应该考虑通过Toast提示用户下载失败的原因。
      改进方案:
    onDownload(videoUrl) {
        console.log(videoUrl);
        uni.showLoading({
            title: '正在下载',
            icon: 'loading',
            duration: 10000,
        });
        uni.downloadFile({
            url: videoUrl,
            success: function(res) {
                if (res.statusCode === 200) {
                    // 下载成功后保存到本地相册
                    uni.saveVideoToPhotosAlbum({
                        filePath: res.tempFilePath,
                        success: function() {
                            uni.showToast({
                                title: '保存成功',
                                icon: 'success'
                            });
                            uni.hideLoading();
                        },
                        fail: function(error) {
                            uni.showToast({
                                title: '保存失败,请检查权限设置',
                                icon: 'none'
                            });
                            uni.hideLoading();
                        }
                    })
                } else {
                    uni.showToast({
                        title: '保存失败,请重试',
                        icon: 'none'
                    });
                    uni.hideLoading();
                    console.log('下载失败', res.statusCode);
                }
            },
            fail: function(error) {
                uni.showToast({
                    title: '下载失败,请检查网络设置',
                    icon: 'none'
                });
                uni.hideLoading();
                console.log('下载失败', error);
            },
            complete: function() {
                uni.hideLoading();
            }
        })
    }
    

    改进后的代码中,在保存到相册失败时会给出相应的提示,同时在下载失败时也会给用户相应的提示,同时添加了下载完成后隐藏Loading的操作。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月1日