收藏
回答

wx.chooseVideo,默认开启压缩,同一视频,安卓端每次转为md5值都不一样 ?

我有一个素材管理的业务,用户可以上传视频,但同一视频不允许上传,所以需要根据视频生成md5值来对比是否曾上传过此素材。

使用wx.chooseVideo选择视频,默认开始压缩模式,同一视频安卓端每次根据视频内容生成的md5值都不一样,关闭压缩模式,同一视频生成的md5值就一样。

苹果端,默认开启压缩模式,同一视频,md5值始终一致;关闭压缩模式,同一视频,md5值每次也不一样;

最终:安卓端需要关闭压缩模式,苹果端开启压缩模式,同一视频每次生成的md5值才一致。

let system = wx.getSystemInfoSync();

      let compressed = true;

      if(system.platform === 'android'){

        compressed = false;

      }

      console.log("压缩视频?",compressed);

      wx.chooseVideo({

        sourceType: ["album", "camera"],

        maxDuration: 60,

        camera: "back",

        compressed: compressed,

        success(res) {

          console.log(res.tempFilePath);

          let haxList = [];

          wx.getFileSystemManager().readFile({

            filePath: res.tempFilePath, // 选择图片返回的相对路径

            // encoding: 'binary', //编码格式

            success: resBack => {

              // 成功的回调

              var spark = new sMD5.ArrayBuffer();

              spark.append(resBack.data);

              var hexHash = spark.end(false);

              console.log("上传视频md5值",hexHash);

              haxList.push({

                material: hexHash,

                size: res.size,

                path: res.tempFilePath

              });

              that.checkAllMaterial(haxList);

            }

          });

        },

        fail(res){

          that.showToast(res)

        }

      });
回答关注问题邀请回答
收藏
登录 后发表内容
问题标签