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

简介: 直播平台源码搭建教程:微信小程序中的直播如何去掉水印本文与大家分享一下直播平台源码搭建教程,如何去掉直播视频的水印

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

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

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

}
});

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

相关文章
|
6天前
|
人工智能 安全 机器人
LangBot:无缝集成到QQ、微信等消息平台的AI聊天机器人平台
LangBot 是一个开源的多模态即时聊天机器人平台,支持多种即时通信平台和大语言模型,具备多模态交互、插件扩展和Web管理面板等功能。
334 14
LangBot:无缝集成到QQ、微信等消息平台的AI聊天机器人平台
|
9天前
|
人工智能 开发框架 机器人
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
AstrBot 是一个开源的多平台聊天机器人及开发框架,支持多种大语言模型和消息平台,具备多轮对话、语音转文字等功能。
2179 13
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
|
1月前
|
移动开发 开发框架 小程序
轻松搭建婚恋交友系统源码,H5/小程序/APP自动适配,智能匹配恋爱交友平台快速落地
婚恋交友系统涵盖在线交友、线下活动、专业服务、社交娱乐等,满足用户多样化需求。系统设计简洁易用,提供实名认证、多注册方式及安全保护,确保用户隐私和数据安全。功能丰富,支持图文展示、筛选匹配、聊天互动、虚拟礼物等,提升互动趣味性。平台可分类管理用户、审核信息、智能推荐,优化用户体验。基于TP6+Uni-app框架,实现跨平台同步,支持二次开发,适应不同市场需求。 [了解更多](https://gitee.com/multi-customer-software/jy)
|
1月前
|
消息中间件 监控 小程序
电竞陪玩系统架构优化设计,陪玩app如何提升系统稳定性,陪玩小程序平台的测试与监控
电竞陪玩系统架构涵盖前端(React/Vue)、后端(Spring Boot/php)、数据库(MySQL/MongoDB)、实时通信(WebSocket)及其他组件(Redis、RabbitMQ、Nginx)。通过模块化设计、微服务架构和云计算技术优化,提升系统性能与可靠性。同时,加强全面测试、实时监控及故障管理,确保系统稳定运行。
|
1月前
|
JavaScript
jQuery+HTML5实现的微信大转盘抽奖源码
这是一款基于jQuery+HTML5实现的微信大转盘抽奖效果源码,是一款可配置奖品抽奖的jQuery大转盘抽奖代码,可实现点击按钮转轮旋转实现抽奖功能,效果逼真自然,代码里面有详细的注释,可以修改文字或者二次开发都可以
46 11
为什么不加盟线下陪玩APP小程序平台,而是自建平台?
自建线下陪玩APP平台相比加盟,能避免利润抽成,确保所有收益归己,同时提供更高的运营灵活性和稳定性,不受制于合同限制或总平台决策变动,更适合追求长期发展的创业者。
|
2月前
|
Android开发 开发者 Python
手撸了一个全自动微信清粉小工具(源码详解)
微信清理僵尸粉工具利用Python和`uiautomator2`库,通过模拟转账操作自动检测并标记微信好友列表中被删除、被拉黑或账号存在问题的“僵尸粉”。工具支持开启调试模式、自动打开微信、获取好友信息、判断好友状态、管理标签等功能,最终将检测结果记录到文件中,便于用户管理和清理好友列表。此工具适用于Android设备,已在OPPO Reno4 Pro上测试成功。
157 5
|
3月前
|
移动开发 小程序
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
138 3
预约按摩小程序开发,为什么很多上门按摩平台根本招聘不到优秀技师?
上门按摩平台面临招不到优秀技师的问题,主要原因是平台众多,技师选择多样。为解决此问题,平台可引入技师等级制度,根据订单数量和好评率划分高、低等级技师。高等级技师可享受70%-90%的高提成及首页推荐,这不仅能激励技师的积极性,还能帮助平台筛选出优质技师,提升服务质量和口碑,形成良性循环。
|
4月前
|
XML 小程序 前端开发
小程序制作教程
小程序制作教程
136 3
小程序制作教程

热门文章

最新文章