zoukankan      html  css  js  c++  java
  • 小程序开发,视频播放和下载

    代码放在github上,页面实现的功能是,视频的播放,以及视频下载的整个流程,包括授权和保存到相册。

    简单说说视频下载的整个流程吧

          wx.getSetting({ //获取用户当前的授权状况
            success: res => {
              let recordAuth = res.authSetting["scope.writePhotosAlbum"];
             if (recordAuth === true) { //1.已经授权成功,直接调用下载方法
                self.saveVideoToAlbum(); 
              } else if (recordAuth === false) { //2.申请过授权,但用户不同意,打开手机系统设置
                self.openAuth(); 
              } else if {  //3.从未授权,弹出授权窗口
                wx.authorize({
                  scope: "scope.writePhotosAlbum",
                  success: () => {  //授权成功
                   //页面提示授权成功
                  },
                  fail: () => { //授权失败
                    self.msg("text", "授权失败,请重试");
                  }
                });
              }
            }
          });

    在第二种状态,申请过授权,但是用户不同意,我们调用openAuth 方法,方法代码如下,

        openAuth() {
          let self = this;
          wx.openSetting({
            success: function(res) {
              let recordAuth = res.authSetting["scope.writePhotosAlbum"];
              if (recordAuth == true) { //手动设置授权成功
                // self.saveVideoToAlbum(); 需不需要在这里调用下载方法,自己考虑
              }
            }
          });
        },

    关于授权的逻辑就这么多了,接下来说说,下载保存逻辑,需要注意的是,每次在下载保存之前需要先清除本地的缓存文件,不然只有10m的缓存文件,下载不了几个视频就满了。

    下载的逻辑是先调用wx.downloadFile 方法,把视频下载到本地缓存,然后再调用wx.saveVideoToPhotosAlbum方法保存;

    还有清除本地缓存的方法,使用的是

    FileSystemManager.readdir({Object})方法,获取缓存文件列表,
    FileSystemManager.unlinkSync()方法,对列表里遍历出来的文件进行删除,
     
    完整代码上传到github了,项目使用的mpvue,应该也很容易看懂
     
    觉得有帮助,不妨给个赞哦~
  • 相关阅读:
    如何使用log4net记录日志
    js鼠标左右键,键盘值
    MagicAjax的内部原理初探(一)
    关于VS2005内置web服务器和IIS的区别问题(讨论,收集)
    在Linux中使用C#
    方便你的测试(TestDriven.NET)
    转载:数据库sharding(scale up to scale out)
    单元测试--爱你不容易
    你期待已久的ASP.NET Atlas(一)[翻]
    Ajax底层代码简析(可直接用的框架)
  • 原文地址:https://www.cnblogs.com/daisygogogo/p/10858239.html
Copyright © 2011-2022 走看看