前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >直播平台源码搭建教程:微信小程序中的直播如何去掉水印

直播平台源码搭建教程:微信小程序中的直播如何去掉水印

原创
作者头像
云豹kj的晨曦
修改2020-08-19 18:04:27
1.9K0
修改2020-08-19 18:04:27
举报
文章被收录于专栏:直播+直播+

直播平台源码搭建教程:微信小程序中的直播如何去掉水印

本文与大家分享一下直播平台源码搭建教程,如何去掉直播视频的水印

var services = require('../../lib/service')

var ReceiverOptions = null;

Page({

  data: {

    loading: false,

    videoInfo: {}, //{videoId:0,videourl:'',title:''}

    //0:加载完成(还有数据)  1:加载中  2:加载完成(没有更多数据了)

    searchLoadingStatus: 2,

    //1:已授权  0:未授权

    typeCode: 0,

    //搜索位置名称

    searchKeyWord: '',

    systemInfo: {},

    //视频下载状态 0:未下载  1:正在下载

    videoDownLoadStatus: 0,

    videoDownProgress: 0,

    videoPlayCoverList: [],

    //是否显示下载视频按钮

    showDownLoadBtn: false,

    //显示分享按钮

    showShareVideoBtn: false,

    //是否显示在线客服

    showOnlineKf: false,

    //积分总数

    creditsAmountSum: 0,

    //视频下载Url

    downLoadVideoUrl: '',

    //视频下载提示语

    downloadVideoWaitRemindText: '正在生成视频地址,请稍后...'

  },

  onLoad(options) {

    var that = this;

    wx.getSystemInfo({

      success: function(res) {

        that.setData({

          systemInfo: res //windowWidth,windowHeight

        });

        console.log(res);

      }

    });

    getApp().getWxLoginInfo(function() {

      that.loadSupportPlat(true);

      that.videoSystemSetting();

    });

  },

  onShow() {

    var that = this;

    var userLoginStatus = getApp().globalData.UserInfo.UserLoginStatus;

    if (userLoginStatus) {

      that.loadSupportPlat(false);

    }

    wx.getClipboardData({

      success(res) {

        console.log(res.data);

        var linkStr = res.data;

        if (linkStr.indexOf('http:') >= 0 || linkStr.indexOf('https:') >= 0) {

          //清空剪切板内容

          wx.setClipboardData({

            data: ' ',

            success(clearRes) {

              wx.hideToast();

            }

          })

          wx.showModal({

            title: '是否粘贴剪切板中的链接地址',

            content: linkStr,

            success(res) {

              if (res.confirm) {

                that.setData({

                  searchKeyWord: linkStr

                });

              }

            }

          })

        }

      }

    })

    that.setData({

      searchLoadingStatus: 2

    });

  },

  loadSupportPlat: function(loading) {

    var that = this;

    services.service('minivideo/getplatlist', {

        "WxUserId": 0

      },

      function(res) {

        console.log(res);

        that.setData({

          videoPlayCoverList: res.data.Data

        });

      }, null, null, loading);

  },

  loadShareVideo: function() {

    let that = this;

    var videoId = that.data.videoInfo.videoId;

    //videoId = 10004;

    if (videoId > 0) {

      services.service('minivideo/getvideoinfo', {

          "WxUserId": 0,

          "VideoId": videoId

        },

        function(res) {

          console.log(res);

          if (res.data.Status) {

            var analysisStatus = res.data.Data.AnalysisStatus;

            var showDownLoadBtn = false;

            //下载成功,显示下载,分享按钮

            if (analysisStatus == 3) {

              showDownLoadBtn = true;

            }

            that.setData({

              downloadVideoWaitRemindText: '',

              showDownLoadBtn: showDownLoadBtn,

              showShareVideoBtn: true,

              videoInfo: {

                videoId: videoId,

                videourl: res.data.Data.VideoUrl

              },

              downLoadVideoUrl: res.data.Data.VideoUrl

            });

          }

        }, null, null, true);

    } else {

    }

  },

  //系统设置

  videoSystemSetting: function() {

    let that = this;

    services.service('minivideo/getconfig', {},

      function(res) {

        console.log(res);

        if (res.data.Status) {

          that.setData({

            showShareVideoBtn: res.data.Data.ShowShareVideo,

            showOnlineKf: res.data.Data.ShowOnlineKf

          });

        }

      }, null, null, false);

  },

  //保存视频到相册

  btnSaveVideo: function() {

    var that = this;

    wx.authorize({

      scope: "scope.writePhotosAlbum",

      success: function() {

        var downLoadStatus = that.data.videoDownLoadStatus;

        if (downLoadStatus == 0) {

          var videourl = that.data.downLoadVideoUrl;

          if (videourl == null || videourl == '') {

            that.showToast('请先提取视频');

            return;

          }

          that.setData({

            videoDownLoadStatus: 1,

            videoDownProgress: 0

          })

          const downloadTask = wx.downloadFile({

            url: videourl,

            success(res) {

              if (res.statusCode === 200) {

                wx.saveVideoToPhotosAlbum({

                  filePath: res.tempFilePath,

                  success(res) {

                    //保存成功

                    that.showSuccessToast('已保存到相册');

                  },

                  fail(res) {

                    console.log(res);

                    that.showToast('保存失败');

                  }

                })

              }

            },

            fail(res) {

              that.showToast('下载视频失败');

            },

            complete(res) {

              that.setData({

                videoDownLoadStatus: 0

              })

            }

          })

          //监听下载进度

          downloadTask.onProgressUpdate(function(res) {

            that.setData({

              videoDownProgress: res.progress

            })

          })

        }

      },

      fail: function() {

        that.showToast('授权保存视频到相册失败,请删除该小程序重新授权');

      }

    });

  },

  //复制链接

  copyVideoLink: function() {

    var that = this;

    var videoUrl = that.data.videoInfo.videourl;

    wx.setClipboardData({

      data: videoUrl,

      success(res) {

        that.showToast('复制成功')

      }

    });

  },

  //搜索

  bindSearchTap: function(e) {

    console.log('开始提取视频')

    console.log(e);

    var that = this;

    var searchLoadingStatus = that.data.searchLoadingStatus;

    if (searchLoadingStatus != 1) {

      that.setData({

        //加载中

        searchLoadingStatus: 1

      });

      var _userInfo = e.detail.userInfo;

      if (_userInfo != null && _userInfo != undefined) {

        //先授权

        getApp().authorUserInfo(_userInfo, function(data) {

          that.getVideoPlayUrl();

        }, false);

      } else {

        that.showToast("请先允许微信授权");

        that.setData({

          //加载中

          searchLoadingStatus: 2

        });

      }

    }

  },

  //使用教程

  bindUseCourse: function(e) {

    wx.navigateTo({

      url: '../useCourse/useCourse'

    });

  },

  //跳转到位置收藏大师

  navigateToLocationMiniProgram: function(e) {

    var wxUserId = getApp().globalData.UserInfo.WxUserId;

    wx.navigateToMiniProgram({

      appId: 'wxb91f7b85c23f0624',

      path: 'pages/home/home?skip=' + wxUserId,

      //extraData: {

      //  flag: 'Skip_1'

      //},

      envVersion: 'release',

      success(res) {

        // 打开成功

      },

      fail(res) {

        that.showToast('调起小程序失败,请稍后重试');

      }

    })

  },

  //清空输入框

  clearInput: function() {

    var that = this;

    that.setData({

      searchKeyWord: ''

    });

  },

  //输入框输入监听

  searchInputMonitor: function(e) {

    var that = this;

    that.setData({

      searchKeyWord: e.detail.value

    });

  },

  //提取视频

  getVideoPlayUrl: function() {

    var that = this;

    that.startGetVideoPlayUrl();

  },

  startGetVideoPlayUrl: function() {

    var that = this;

    var wxUserId = getApp().globalData.UserInfo.WxUserId;

    var keyword = that.data.searchKeyWord;

    services.service('minivideo/addvideourl', {

        WxUserId: wxUserId,

        OriginalUrl: keyword,

        XcxTypeCode: 1

      },

      function(res) {

        if (res.data.Status) {

          var videoUrl = res.data.Data.VideoUrl;

          var videoRecordId = res.data.Data.VideoRecordId;

          var videoImgs = res.data.Data.Imgs;

          that.setData({

            videoInfo: {

              videoId: videoRecordId,

              videourl: videoUrl,

              title: '',

              imgs: videoImgs

            }

          });

          var needDownLoadToServer = res.data.Data.NeedDownLoadToServer;

          if (needDownLoadToServer) {

            if (videoUrl != null && videoUrl != '') {

              that.downLoadVideoToServer(wxUserId, videoUrl, videoRecordId);

            }

          } else {

            that.setData({

              downLoadVideoUrl: videoUrl,

              showDownLoadBtn: true

            });

          }

        } else {

          wx.showModal({

            content: res.data.Msg,

            showCancel: false

          })

        }

      }, null,

      function() {

        that.setData({

          //加载完成

          searchLoadingStatus: 2

        });

      })

  },

  //下载视频到服务器

  downLoadVideoToServer: function(wxUserId, videoUrl, videoRecordId) {

    var that = this;

    that.setData({

      showDownLoadBtn: false,

      downloadVideoWaitRemindText: '正在生成视频地址,请稍后...'

    });

    services.service('minivideo/downloadvideo', {

        "WxUserId": wxUserId,

        "VideoUrl": videoUrl,

        "VideoRecordId": videoRecordId

      },

      function(res) {

        if (res.data.Status) {

          var url = res.data.Data.Url;

          that.setData({

            downLoadVideoUrl: url,

            showDownLoadBtn: true

          });

        } else {

          that.showToast(res.data.Msg);

          that.setData({

            showDownLoadBtn: false,

            downloadVideoWaitRemindText: res.data.Msg

          });

        }

      }, null, null, false);

  },

  //如何获取更多次数

  getTimesMore: function() {

    wx.navigateTo({

      url: '../getTimesMore/getTimesMore'

    });

  },

  showToast(title) {

    wx.showToast({

      title: title,

      icon: 'none',

      duration: 2000

    })

  },

  onShareAppMessage: function(res) {

    let that = this;

    return {

      path: '/pages/home/home'

    }

  }

});

以上就是直播平台源码搭建教程,欢迎感兴趣的朋友一起讨论。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档