我的编程空间,编程开发者的网络收藏夹
学习永远不晚

爱奇艺视频小程序系统功能如何开发

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

爱奇艺视频小程序系统功能如何开发

本文小编为大家详细介绍“爱奇艺视频小程序系统功能如何开发”,内容详细,步骤清晰,细节处理妥当,希望这篇“爱奇艺视频小程序系统功能如何开发”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

1.首页的轮播图

这里使用的是小程序的滑块视图容器swiper组件,用来做轮播图那叫一个简单方便

使用过爱奇艺小程序的朋友会发现首页简单介绍视频信息的轮播图是布局在页面中间并且每一张图片都不相连的,滑动时很是简洁大方。一开始我是简单的使用,将swiper设置了宽高并使之居中,就产生了下面的结果:只有中间的内容在滑动,并不是想要的效果

那看来即使swiper组件看起来简单也要好好研究一番哪,看了文档之后我发现swiper组件其实是swiper-item在滑动,并且它仅可放置在swiper组件中,宽高自动设置为100%。既然这样,那就去设置swiper-item的宽度好了

swiper{    width:100%;}swiper-item{    width:80%;}

emmm好像不太行,似乎每一个swiper-item总是那么分不开啊,那就去设置里面的内容的样式吧

.info-box{    width: 100%;    margin: 0 60rpx;}

总算这样才做到了想要的效果。撒花~

2.宣传图跟着轮播图改变

在这里是使用了swiperbindchange方法。只要滑动了就会触发,并且有一个current代表当时滑动到第几个。这样想来,swiper好像一个数组,里面包含着很多的swiper-item

所以我们可以在js部分通过获取到这个current值,在对应的图片资源数组中遍历并取出地址,换成宣传图的地址即可

//index.js        moviepicChange(e) {        const imgsUrlList = this.data.imgsUrlList; //图片资源        let bigImg = this.data.bigImg;        let video_id = this.data.video_id;        for (let i = 0; i < imgsUrlList.length; i++) {            if (i == e.detail.current) { //如果current值与图片数组索引值匹配到了,则                bigImg = imgsUrlList[i].thumbnail; //换掉宣传图片地址                video_id = imgsUrlList[i].video_id;            }        }        this.setData({            bigImg: bigImg,            video_id        })    }

3.任意点击视频缩略图即可跳转到相关页面

在这个功能里头,数据处理是我碰到的一大难题了,因为没有后端,我就想试图模拟一下点击一个图片就发送视频id,并由后端返回响应数据的操作,大致思路就是就是通过了一个“中间站”去处理。emmm 可能有一点笨笨的= =。

  1. 首先准备好来自Easy-Mock的数据接口

  2. 然后在视频缩略图上绑定一下事件,用data-传递想要用于查询的参数

     <swiper-item data-vid="{{item.video_id}}" data-title="{{item.title}}" bindtap="openDetail"></swiper-item>
  3. 视频详情页面获取到传过来的id之后就可以发起请求,因为wx.request是个异步操作,需要一点时间,此处我对wx.request进行了封装,返回一个promise的办法就可以把异步操作变成了同步的啦ヾ(◍&deg;&nabla;&deg;◍)ノ゙

     //video-detail.js requestVideo: function(num = 0) { util.request({ //封装的util.request方法         url: `https://www.easy-mock.com/mock/5b0c37bed0e51c310ce24ab0/iqiyi/media#!method=get`,  //请求地址         data: { // 请求参数             id: this.data.video_id,             tag: 'dramas',             langs: 'en'         }     })     .then(res => { //res是返回的数据         //对数据进行处理,之后便可通过数据绑定在页面显示响应内容     }) }

创建一个util工具文件夹,用于提供工具方法。这里就是我模拟后端传回响应数据的地方,先在util.js内获取所有的数据,再根据视频详情页面发送过来的参数对已经获得的数据进行处理,通过返回promise.then的操作在视频详情页面获得由util.js处理之后的数据。

//util.js    let util = {request(opt) {    let options = Object.assign({},opt); //花括号是目标对象,后面的opt是源对象。进行对象合并:将源对象里面的属性添加到目标对象中去,若两者的属性名有冲突,后面的将会覆盖前面的    let { url, data} = options; //结构成这两个变量    return new Promise((resolve, reject) => { //向请求发起页面返回一个promise        wx.request({ //发送请求            url,            data,            success(res) { //请求到数据之后对数据进行处理                let returnRes = [];                if (data.hasOwnProperty('tag')) {                     let arr = res.data[data.tag];                    if (data.hasOwnProperty('id')) { //如果请求参数中有tag,id则进行以下匹配                        console.log(arr)                        for (let i in arr) {                            if (arr[i].video_id === data.id) {                                 returnRes = arr[i]; //得到跟点击的缩略图相对应的视频资源                            }                        }                        resolve(returnRes)                        return;                    }                    returnRes = arr;                }                resolve(returnRes)            },            fail(err) {                reject(err)            }        })    })}}

4.关键字搜索

  1. 首先是在搜索页面获取到关键字,之后作为请求参数使用上述封装好util.request进行请求与数据处理

  2. 在util.js内获取到所有数据之后,在众多数据中通过RegExpObject.test(string)实现关键字的遍历匹配

     //util.js if (data.hasOwnProperty('key')) { //如果请求参数是key const media = res.data; for (let i in media) { //遍历匹配电影名     for (let j in media[i]) {         var re = new RegExp(data.key);         if (re.test(media[i][j].title)) {             returnRes.push(media[i][j]); //得到匹配好的电影         }     } } resolve(returnRes) return; } resolve(returnRes)
  3. 搜索页面使用util.request得到数据之后,搜索结果列表一项一项就可以显示出来。重点是(敲黑板),一般来说点击哪一项,在搜索结果页面那一项就会排在最上面,那我就想要不然再建一个由点击的的那一项作为第一项的查询结果数组,将它存在本地然后在下一个页面取出并显示!

     //search.js clickResult: function(e) { let index = e.currentTarget.dataset.num; //点击了第几项 let searchVal = this.data.searchVal; //关键词 let StorageResult = []; // 用于存在本地的数组 let temp = []; const result = this.data.result; for (let i = 0; i < result.length; i++) {     if (i == index) {         temp = result.splice(i, 1); //取出点击的那一项     } } StorageResult = temp; for (let i in result) {     StorageResult = [...StorageResult, result[i]] //将点击的那一项作为数组首位,其他搜索结果再依次放入 } wx.setStorage({ //在本地缓存搜索结果     key: 'searchResult',     data: StorageResult,     success: function(res) {         wx.navigateTo({             url: `search-result/search-result?key=${searchVal}` //跳转到下一个页面         })     } }) }
  4. 另外,搜索结果会顺带把集数罗列出来,那就需要实现点哪集就在视频详情页定位到哪集的功能

  • 先在wxml里通过data-把id、集数、标题传到下一个页面,在onload里头获取集数

      //video-detail.js  onLoad: function(option) {  this.setData({      video_id: option.id,      mediaList: null,  })  wx.setNavigationBarTitle({ //设置导航条名称      title: option.title  })  if (option.hasOwnProperty('num')) { //调用请求资源方法传入集数      this.requestVideo(option.num);  } else {      this.requestVideo();  }  }
  • 请求所有视频资源之后并遍历,把当前播放地址设为选中的那集

      requestVideo: function(num = 0) { //没有选择集数,则集数默认是0  util.request({         ...(略)      })      .then(res => {          this.setData({                  mediaList: res,                  isLoading: false,                  playerUrl: res.drama_num[num].video_url //修改播放地址              })          this.pickNum(num); //改变集数选择状态      })  }
  • 用于改变集数选择状态

      pickNum: function(num) {  for (let i of mediaList.drama_num) {      i.selected = parseInt(i.drama_id) === parseInt(num) + 1 //如果选择的集数与视频资源的id一样就改变该集的选中状态      if (i.selected) {          playerUrl = i.video_url      }  }  this.setData({          mediaList,          playerUrl      })  }

读到这里,这篇“爱奇艺视频小程序系统功能如何开发”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

爱奇艺视频小程序系统功能如何开发

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

爱奇艺视频小程序系统功能如何开发

本文小编为大家详细介绍“爱奇艺视频小程序系统功能如何开发”,内容详细,步骤清晰,细节处理妥当,希望这篇“爱奇艺视频小程序系统功能如何开发”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.首页的轮播图这里使用的是小
2023-06-26

视频社交小程序开发需要哪些功能

本文小编为大家详细介绍“视频社交小程序开发需要哪些功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“视频社交小程序开发需要哪些功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。  视频社交小程序开发需要什么功能
2023-06-26

视频剪辑小程序开发需要什么功能

这篇“视频剪辑小程序开发需要什么功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“视频剪辑小程序开发需要什么功能”文章吧。 
2023-06-26

视频剪辑小程序需要开发哪些功能

这篇文章主要介绍视频剪辑小程序需要开发哪些功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 视频剪辑小程序开发的基本功能有哪些? 1。 用户登录注册:为了保护每个用户帐户的安全,用户需要在使用迷你程序之前预先注册。
2023-06-27

如何使用PHP开发微信小程序的视频编辑功能?

如何使用PHP开发微信小程序的视频编辑功能?随着社交媒体的发展,视频内容在用户中间变得越来越受欢迎。微信小程序作为中国最大的社交平台之一,视频编辑功能的需求也越来越大。本篇文章将介绍如何使用PHP开发微信小程序的视频编辑功能,并提供具体的代
2023-10-27

微信小程序开发中如何实现保存视频到系统相册

这篇“微信小程序开发中如何实现保存视频到系统相册”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“微信小程序开发中如何实现保存视频到系统相册”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的
2023-06-26

如何使用PHP实现微信小程序的音视频功能?

如何使用PHP实现微信小程序的音视频功能?随着时代的发展,人们对于移动应用的需求也日益增长。微信小程序作为一种轻量级的应用开发模式,正逐渐受到用户的欢迎。而其中的音视频功能在社交和娱乐领域有着广泛的应用。本文将介绍如何使用PHP实现微信小程
2023-10-26

摇一摇小程序系统如何开发

这篇文章主要介绍“摇一摇小程序系统如何开发”,在日常操作中,相信很多人在摇一摇小程序系统如何开发问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”摇一摇小程序系统如何开发”的疑惑有所帮助!接下来,请跟着小编一起来
2023-06-26

微信小程序购物车功能如何开发

这篇“微信小程序购物车功能如何开发”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序购物车功能如何开发”文章吧。ind
2023-06-26

微信小程序如何开发朋友圈功能

这篇“微信小程序如何开发朋友圈功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序如何开发朋友圈功能”文章吧。一、开
2023-06-26

微信小程序仿携程系统如何开发

这篇文章主要介绍了微信小程序仿携程系统如何开发的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序仿携程系统如何开发文章都会有所收获,下面我们一起来看看吧。查询功能的实现1.首先需要在查询之前获取输入的所在
2023-06-26

欢乐拼图小程序系统如何开发

本篇内容介绍了“欢乐拼图小程序系统如何开发”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  设置图片和红包-生成口令小程序,欢乐拼图可以发到
2023-06-26

小程序系统开发可以提供什么实质性功能

这篇文章主要介绍“小程序系统开发可以提供什么实质性功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“小程序系统开发可以提供什么实质性功能”文章能帮助大家解决问题。  1.预约功能  小程序的预约功能
2023-06-26

微信小程序开发如何实现地图功能

这篇文章主要讲解了“微信小程序开发如何实现地图功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序开发如何实现地图功能”吧!基本使用地图组件使用起来也很简单。.wxml
2023-06-26

微信小程序如何开发微信支付功能

本篇内容主要讲解“微信小程序如何开发微信支付功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序如何开发微信支付功能”吧!第一步:用户请求开发者后台,发起下单请求发起请求前在小程序端调用
2023-06-26

如何使用PHP开发微信小程序的任务统计功能?

如何使用PHP开发微信小程序的任务统计功能?微信小程序成为了人们生活中的重要一环,越来越多的企业和个人开发者开始开发自己的小程序。其中,任务统计功能是许多小程序开发者常常需要实现的一个功能。本文将介绍如何使用PHP开发微信小程序的任务统计功
2023-10-27

小程序开发中如何获取系统信息

本文将为大家详细介绍“小程序开发中如何获取系统信息”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“小程序开发中如何获取系统信息”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知
2023-06-26

如何用PHP开发微信小程序的直播功能?

随着微信小程序的流行,越来越多的企业开始关注微信小程序的开发和推广。其中,直播功能是非常受欢迎的一种功能。本文将围绕如何使用PHP开发微信小程序的直播功能进行介绍,同时提供具体的代码示例。一、准备工作在开发微信小程序的直播功能之前,首先需要
如何用PHP开发微信小程序的直播功能?
2023-10-28

如何用PHP开发微信小程序的登录功能?

如何用PHP开发微信小程序的登录功能?微信小程序已成为越来越多企业和开发者选择的平台之一。为了让用户能够在小程序中使用个人信息或进行一些需要用户身份验证的操作,开发者需要实现登录功能。本文将介绍如何使用PHP开发微信小程序的登录功能,并提供
2023-10-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录