微信小程序:影视点播

项目实训:影视点播

本次实训的目的是在实训老师的指导下,了解,学习进而制作简单的微信小程序,这次的样本是可以实现热播影视推荐、电影、电视剧、综艺节目、以及在线影片搜索等功能的影视小程序。因为微信在中国乃至世界得到了广泛的传播和使用,有拥有大量的用户群体,这样便可以使我们的小程序得到充分使用和传播。在小程序设计中,我们利用的是一个老师提供的url, 通过调用里面的接口里的数据,将采集到数据在我们的小程序中进行显示,通过对小程序基本的规划,在充分的考虑到用户需求之后,对小程序的整个框架有了一个基本的概念,然后分模块对小城的功能逐步实现和加工。分别实现了电影,电视剧,主页,播放器,搜索等功能模块。最终实现了整个微信小程序的开发与发布。

效果图

在这里插入图片描述
推荐影视部分
在这里插入图片描述
电影界面
在这里插入图片描述
电视剧界面
在这里插入图片描述
影视播放界面
在这里插入图片描述
推荐页实现

var totalPage=0;
var pageno=1;
var currentPage=1;
Page({

  /**
   * 页面的初始数据
   */
  data: {
    vlist:[],
    keyword:''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {
 
    this.data.vlist = [];
    var keyword = this.data.keyword
    this.loadData('1', keyword);
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {
    console.log("触发onReachBottom函数" + "totalPage:" + totalPage + "    currentPage:" + currentPage);

    if (currentPage < totalPage) {
      currentPage++;
      console.log("currentPage:" + currentPage);
      var keyword=this.data.keyword;
      this.loadData(currentPage,keyword);
    }
    if (currentPage >=totalPage){
      currentPage=1;
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  },
  submit: function(event) {
    console.log("event!!!"+event);
    this.data.vlist=[];
    var keyword = event.detail.value.keyword;
    this.data.keyword=keyword
   
   
    this.loadData('1', keyword);
  },
  loadData:function(pageNo,keyword){
    console.log("keyword!!!!!!!!"+keyword);
    wx.showLoading({
      title: '加载中..',
    })
    var that = this;
    wx.request({
      url: 'https://v.yuanmasoft.com/api/videoSearch ',
      data: {
        keywords: keyword,
        pageno: pageNo
      },
      header: {
        'content-type': 'application/json'
      },
      success: function (res) {
        console.log('执行search!!!!!!');
        console.log(res);
        var serverData = res.data;
        var status = serverData.msg;
        if (status == 'success') {
        
          var searchData = serverData.data;
          console.log('searchData!!!!' + searchData);
          var result = searchData.result;
          console.log('result!!!!' + result);
          totalPage=searchData.totalPage;
          var videoSet = [];
          for (var i = 0; i < result.length; i++) {
            var item = result[i];
            var videoTemp = {
              name: item.VIDEO_NAME,
              poster: item.VIDEO_POSTER_URL,
              vid: item.VIDEOBASIC_ID
            }
            videoSet.push(videoTemp);
          }
          var totalList=that.data.vlist;
          var newSet=totalList.concat(videoSet);
          console.log("videoSet :" + videoSet);
          that.setData({
            vlist: newSet
          });
        }
      },
      complete: function () {
        wx.hideLoading()
      }
    })
  },
  toPlay:function(event){
    console.log("执行执行search的toPlay"+event);
    var vid=event.target.dataset.vid;
    wx:wx.navigateTo({
      url: '../player/player?vid='+vid,
    })
  },
  onImageError:function(event){
    var vid=event.target.dataset.vid;
    var totalList=this.data.vlist;
    for(var i=0;i<totalList.length;i++){
      var item=totalList[i];
      var itemId=item.vid;
      if(itemId==vid){
        item.poster='/images/default_200.png'
        break;
      }
      
    }
    this.setData({vlist:totalList});
  }
})

电影页电视剧页面类似,实现下拉刷新,上拉加载更多,实现点击播放电影

4.2	实现电影页面功能。

展示电影页面,实现下拉刷新,上拉加载更多,实现点击播放电影
程序代码:
var totalPage=0;
var pageno=1;
var currentPage=1;
Page({

  /**
   * 页面的初始数据
   */
  data: {
    vlist:[],
    keyword:''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {
 
    this.data.vlist = [];
    var keyword = this.data.keyword
    this.loadData('1', keyword);
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {
    console.log("触发onReachBottom函数" + "totalPage:" + totalPage + "    currentPage:" + currentPage);

    if (currentPage < totalPage) {
      currentPage++;
      console.log("currentPage:" + currentPage);
      var keyword=this.data.keyword;
      this.loadData(currentPage,keyword);
    }
    if (currentPage >=totalPage){
      currentPage=1;
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  },
  submit: function(event) {
    console.log("event!!!"+event);
    this.data.vlist=[];
    var keyword = event.detail.value.keyword;
    this.data.keyword=keyword
   
   
    this.loadData('1', keyword);
  },
  loadData:function(pageNo,keyword){
    console.log("keyword!!!!!!!!"+keyword);
    wx.showLoading({
      title: '加载中..',
    })
    var that = this;
    wx.request({
      url: 'https://v.yuanmasoft.com/api/videoSearch ',
      data: {
        keywords: keyword,
        pageno: pageNo
      },
      header: {
        'content-type': 'application/json'
      },
      success: function (res) {
        console.log('执行search!!!!!!');
        console.log(res);
        var serverData = res.data;
        var status = serverData.msg;
        if (status == 'success') {
        
          var searchData = serverData.data;
          console.log('searchData!!!!' + searchData);
          var result = searchData.result;
          console.log('result!!!!' + result);
          totalPage=searchData.totalPage;
          var videoSet = [];
          for (var i = 0; i < result.length; i++) {
            var item = result[i];
            var videoTemp = {
              name: item.VIDEO_NAME,
              poster: item.VIDEO_POSTER_URL,
              vid: item.VIDEOBASIC_ID
            }
            videoSet.push(videoTemp);
          }
          var totalList=that.data.vlist;
          var newSet=totalList.concat(videoSet);
          console.log("videoSet :" + videoSet);
          that.setData({
            vlist: newSet
          });
        }
      },
      complete: function () {
        wx.hideLoading()
      }
    })
  },
  toPlay:function(event){
    console.log("执行执行search的toPlay"+event);
    var vid=event.target.dataset.vid;
    wx:wx.navigateTo({
      url: '../player/player?vid='+vid,
    })
  },
  onImageError:function(event){
    var vid=event.target.dataset.vid;
    var totalList=this.data.vlist;
    for(var i=0;i<totalList.length;i++){
      var item=totalList[i];
      var itemId=item.vid;
      if(itemId==vid){
        item.poster='/images/default_200.png'
        break;
      }
      
    }
    this.setData({vlist:totalList});
  }
})

包括电影、电视剧、聚合、等但不限于以上资源。实现上拉加载更多功能,实现点击跳转播放。

var totalPage=0;
var pageno=1;
var currentPage=1;
Page({

  /**
   * 页面的初始数据
   */
  data: {
    vlist:[],
    keyword:''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {
 
    this.data.vlist = [];
    var keyword = this.data.keyword
    this.loadData('1', keyword);
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {
    console.log("触发onReachBottom函数" + "totalPage:" + totalPage + "    currentPage:" + currentPage);

    if (currentPage < totalPage) {
      currentPage++;
      console.log("currentPage:" + currentPage);
      var keyword=this.data.keyword;
      this.loadData(currentPage,keyword);
    }
    if (currentPage >=totalPage){
      currentPage=1;
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  },
  submit: function(event) {
    console.log("event!!!"+event);
    this.data.vlist=[];
    var keyword = event.detail.value.keyword;
    this.data.keyword=keyword
   
   
    this.loadData('1', keyword);
  },
  loadData:function(pageNo,keyword){
    console.log("keyword!!!!!!!!"+keyword);
    wx.showLoading({
      title: '加载中..',
    })
    var that = this;
    wx.request({
      url: 'https://v.yuanmasoft.com/api/videoSearch ',
      data: {
        keywords: keyword,
        pageno: pageNo
      },
      header: {
        'content-type': 'application/json'
      },
      success: function (res) {
        console.log('执行search!!!!!!');
        console.log(res);
        var serverData = res.data;
        var status = serverData.msg;
        if (status == 'success') {
        
          var searchData = serverData.data;
          console.log('searchData!!!!' + searchData);
          var result = searchData.result;
          console.log('result!!!!' + result);
          totalPage=searchData.totalPage;
          var videoSet = [];
          for (var i = 0; i < result.length; i++) {
            var item = result[i];
            var videoTemp = {
              name: item.VIDEO_NAME,
              poster: item.VIDEO_POSTER_URL,
              vid: item.VIDEOBASIC_ID
            }
            videoSet.push(videoTemp);
          }
          var totalList=that.data.vlist;
          var newSet=totalList.concat(videoSet);
          console.log("videoSet :" + videoSet);
          that.setData({
            vlist: newSet
          });
        }
      },
      complete: function () {
        wx.hideLoading()
      }
    })
  },
  toPlay:function(event){
    console.log("执行执行search的toPlay"+event);
    var vid=event.target.dataset.vid;
    wx:wx.navigateTo({
      url: '../player/player?vid='+vid,
    })
  },
  onImageError:function(event){
    var vid=event.target.dataset.vid;
    var totalList=this.data.vlist;
    for(var i=0;i<totalList.length;i++){
      var item=totalList[i];
      var itemId=item.vid;
      if(itemId==vid){
        item.poster='/images/default_200.png'
        break;
      }   
    }
    this.setData({vlist:totalList});
  }
})

项目源码链接https://github.com/lzlv587/WeChatAppDemo

发布了73 篇原创文章 · 获赞 20 · 访问量 4449

猜你喜欢

转载自blog.csdn.net/lzl980111/article/details/103840290