且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-03-26 04:52:43

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

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

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'
}

}
});

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