收藏
回答

saveVideoToPhotosAlbum保存视频到本地相册,视频大小0kb,是一个空文件

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.downloadFile,wx.saveVideoToPhotosAlbum 微信iOS客户端 8.0.6 2.0.0

https://developers.weixin.qq.com/miniprogram/dev/api/media/video/wx.saveVideoToPhotosAlbum.html

            // 微信小程序下载视频

            wxVideoQuery() {

                let fileName = new Date().valueOf();

                wx.downloadFile({

                    url: this.afterLink,

                    filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4',

                    success: res => {

                        uni.showLoading({

                            title:'正在下载...'

                        })

                        console.log('下载', res)

                        let filePath = res.filePath; //下载到本地获取临时路径

                        wx.saveVideoToPhotosAlbum({ //保存到相册

                            filePath,

                            success: file => {

                                uni.hideLoading()

                                wx.showToast({

                                    title: '保存成功',

                                    icon: 'success',

                                    duration: 3000

                                })

                                let fileMgr = wx.getFileSystemManager();

                                fileMgr.unlink({ //删除临时文件

                                    filePath: wx.env.USER_DATA_PATH + '/' + fileName +

                                        '.mp4',

                                })

                            },

                            fail: err => {

                                console.log('保存失败', err)

                                if (err.errMsg == 'saveVideoToPhotosAlbum:fail auth deny') {

                                    wx.showModal({

                                        title: '提示',

                                        content: '需要您授权保存相册',

                                        showCancel: false,

                                        success: modalSuccess => {

                                            wx.openSetting({

                                                success(settingdata) {

                                                    if (settingdata

                                                        .authSetting[

                                                            'scope.writePhotosAlbum'

                                                        ]) {

                                                        console.log(

                                                            '获取权限成功,请再次点击保存!'

                                                        )

                                                    } else {

                                                        console.log(

                                                            '获取权限失败,下载视频无法正常使用'

                                                        )

                                                    }

                                                }

                                            })

                                        }

                                    })

                                }

                            }

                        })

                    }

                })

            },

最后一次编辑于  2021-06-22
回答关注问题邀请回答
收藏

2 个回答

  • 红豆
    红豆
    2021-06-24

    问题已解决,后台返回的视频链接有问题。

    2021-06-24
    有用
    回复
  • 子游
    子游
    2021-06-22

      console.log('下载', res)这里的数据打印出来是什么, wx.downloadFile这个API里面加个header:{'content-type': 'video/mp4’}试试,我之前用这个API不加文件header头,下载不下来

    2021-06-22
    有用
    回复 4
    • 红豆
      红豆
      2021-06-24
      res打印下来是这样的,其中的dataLength是0,会跟这个有关系么?大佬帮我看下 o(╥﹏╥)o
      2021-06-24
      回复
    • 红豆
      红豆
      2021-06-24
      已经加了header,但还是不行,会有可能是视频链接的原因么?
      2021-06-24
      回复
    • 子游
      子游
      2021-06-24回复红豆
      用浏览器输入,看看浏览器能下载不
      2021-06-24
      回复
    • 子游
      子游
      2021-06-24回复红豆
      不应该是0
      2021-06-24
      回复
登录 后发表内容