收藏
回答

安卓手机保存视频 .mov格式会提示保存类型不对

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

预想:用downloadFile把视频下载下来,然后用saveVideoToPhotosAlbum把视频保存到相册。


问题一:

downloadFile时,文件后缀是mp4基本可以下载成功。如果视频是.mov格式,部分安卓手机下载后缀为unknown,而os手机下载的文件没有后缀,看过很多帖子说改变content-type的类型,便上网查了每个视频对应的mine类型是啥,然后修改content-type,但是不起作用,返回来的content-type依旧是默认的application/octet-stream,后来参考这篇帖子,把文件的存贮位置手动设置存贮

let  url="http://investmenttry.oss-cn-shenzhen.aliyuncs.com/201904/QQ视频20181022155149_2.mp4",
     arry = url.split("/"),
        fileName = arry[arry.length-1];
      wx.downloadFile({
        url: url, // 仅为示例,并非真实的资源
        filePath: wx.env.USER_DATA_PATH + '/' + fileName, 
        success(res) {
          // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
          if (res.statusCode === 200) {
            console.log(res)
            wx.saveVideoToPhotosAlbum({
              filePath:res.filePath,
              success(res) {
                console.log(e,"保存成功");
              },
           
              fail(e){
           
                console.log("保存失败", e);
              }
            })
          }
          else{
            console.log("下载失败");
          }
        }
      })

文件下载下来都是有后缀的了。针对以上问题,我有几处疑惑:

1、缓存文件存贮在手机位置的哪里呢?找不到这个,总感觉没下载成功

2、downloadFile 支持的 content-type 都有哪些呢?

3、为何设置了content-type没有作用?


问题二、

把文件下载来后,文件后缀为mov时,部分安卓手机(华为,oppo,但vivo不会)saveVideoToPhotosAlbum会提示错信息errMsg:"saveVideoToPhotosAlbum:fail invalid file type"。(video上 华为不支持.mov格式的视频,但是oppo支持)针对以上,我有几处疑问:

1、saveVideoToPhotosAlbum能保存的视频类型安卓和苹果分别是什么?

2、saveVideoToPhotosAlbum保存的文件位置在哪里呢

回答关注问题邀请回答
收藏

1 个回答

  • 灵芝
    灵芝
    2019-04-12

    问题一:

    1、wx.downloadFile 可以自行设置文件下载后存储的路径,具体请参考:https://developers.weixin.qq.com/miniprogram/dev/api/wx.downloadFile.html

    2、这个是开发者传什么就是什么

    3、没有作用是什么意思?


    问题二:

    1、wx.saveVideoToPhotosAlbum目前支持的视频格式为MP4

    2、调用wx.saveVideoToPhotosAlbum是保存到系统相册的,具体请参考:https://developers.weixin.qq.com/miniprogram/dev/api/wx.saveVideoToPhotosAlbum.html

    2019-04-12
    有用
    回复 3
    • 沫笺
      沫笺
      2019-04-17

      问题一:

      1、我知道可以自行设置文件的下载存储的路径,比如我上面代码 wx.env.USER_DATA_PATH +'/' + fileName, 得到存放的地址是wxfile://usr/movie_4.mp4,那个微信默认的文件夹是具体到手机哪个文件夹呢


      2、之前我针对mov,我传了content-type是video/quicktime,可是不能下载mov文件成功


      3、content-type无论传了什么,结果文件下载返回来数据的都是application/octet-stream


      2019-04-17
      回复
    • Daisy
      Daisy
      2019-07-16
      你好,我设置了跟上面那位一样的存储路径,但是会有10m的限制,如果不设置就可以保存50m的,请问有没有办法可以两全?既可以自己设定路径,又可以不受50M的限制
      2019-07-16
      回复
    • Daisy
      Daisy
      2019-07-16
      不受10M的限制
      2019-07-16
      回复
登录 后发表内容