微信小程序实现滚动视频自动播放(未优化)

wx.createIntersectionObserver(Object component, Object options)
创建并返回一个 IntersectionObserver 对象实例。在自定义组件或包含自定义组件的页面中,应使用 this.createIntersectionObserver([options])
来代替
具体可以看微信小程序文档
2.由于我们这个区域是一个滚动区域,所以我用了scoll-view,最外层用scroll-view包裹
直接封装一个组件
player.js


- // pages/text/play.js
- const app = getApp()
- Component({
- /**
- * 组件的属性列表
- */
- properties: {
- index: {
- type: Array,
- value: []
- }
- },
- ready() {
- },
- attached() {
- // 获取随机数字 给video标签id命名 可使用时间戳
- var random = Math.floor(Math.random() * 1000);
- // 全局获取 屏幕高度宽度
- var { screenHeight, screenWidth } = app.globalData.systemInfo
- this.setData({
- screenHeight,
- screenWidth,
- random
- })
- var that = this
- var screenHeight = screenHeight //获取屏幕高度
- var screenWidth = screenWidth //获取屏幕宽度
- let topBottomPadding = screenHeight / 2
- // 获取试图目标元素
- const videoObserve = wx.createIntersectionObserver(this)
- // 设置试图可见区域
- this.observe = videoObserve.relativeToViewport({ top: -topBottomPadding + 10, bottom: -topBottomPadding })
- // // 暂存随机
- var random = that.data.random
- this.observe.observe(`#vids${that.data.random}`, (res) => {
- let { intersectionRatio } = res
- // var videoNow = wx.createVideoContext(res.id,that)
- if (intersectionRatio > 0) {
- //离开视界,因为视窗占比>0,开始播放
- // that.setData({
- // playstart: true
- // })
- //进入视界,开始播放
- console.log('start',res);
- wx.createVideoContext(res.id,that).play()
- wx.createVideoContext('vids',that).play()
- // that.observe.disconnect()
- } else {
- // 离开试图 暂停播放
- console.log('stop',res);
- wx.createVideoContext('vids',that).pause()
- wx.createVideoContext(res.id,that).pause()
- // that.observe.disconnect()
- // that.setData({
- // playstart: false
- // })
- }
- })
- },
- /**
- * 组件的初始数据
- */
- data: {
- list: [],
- playstart: false,
- screenHeight: "",
- screenWidth: "",
- random: '',
- },
- /**
- * 组件的方法列表
- */
- onShow() {
- },
- methods: {
- }
- })
player.wxml


- <view class="box" hover-class="none">
- <view class="">
- <video class="vids" id="vids{{random}}" data-index='{{index}}' src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400"></video>
- </view>
- </view>
大概实现功能,可以自己设置
最后在自己想用的地方映入组件即可
微信小程序实现滚动视频自动播放(未优化)的更多相关文章
- 微信小程序-通知滚动小提示
代码地址如下:http://www.demodashi.com/demo/14044.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...
- 微信小程序video组件出现无法播放或卡顿
微信小程序使用video组件播放视频的时候,会出现卡顿或者无法播放的问题,加一个custom-cache=”true“即可解决,这个属性文档上没有,是从小程序开发社区中get到的.
- 微信小程序scroll-view滚动一次多次触发的问题解决方案
最近使用微信小程序开发的时候,需要用scroll-view的bindscrolltolower事件,控制加载下一页的内容.但是发现在ios里,下拉滚动一次,事件触发两次,导致重复加载数据. 经过百度和 ...
- 微信小程序首支视频广告片发布
自2017年1月9日上线以来,微信小程序瞬间引爆网络,又迅速归于平静.对这个“无需安装.触手可及.用完即走.无需卸载”的小程序,微信从一开始就对它寄予了无限期望.在公布一系列规则更改后,微信小程序终于 ...
- 利用机器学习实现微信小程序-加减大师自动答题
之前有看到微信小程序<跳一跳>别人用python实现自动运行,后来看到别人用hash码实现<加减大师>的自动答题领取娃娃,最近一直在研究深度学习,为啥不用机器学习实现呢?不就是 ...
- 关于微信小程序爬虫关于token自动更新问题
现在很多的app都很喜欢在微信或者支付宝的小程序内做开发,毕竟比较方便.安全.有流量.不需要再次下载app,好多人会因为加入你让他下载app他会扭头就走不用你的app,毕竟做类似产品的不是你一家. 之 ...
- 微信小程序发布新版本时自动提示用户更新
如图,当小程序发布新的版本后,用户如果之前访问过该小程序,通过已打开的小程序进入(未手动删除),则会弹出这个提示,提醒用户更新新的版本.用户点击确定就可以自动重启更新,点击取消则关闭弹窗,不再更新. ...
- 微信小程序bnner滚动
首先是轮播图,autoplay 自动播放,interval 轮播的时间,duration 切换速度,可以根据自己需求去添加. Delete:是删除按钮,加载进来是隐藏的,需用户点轮播图进去后,轮播图全 ...
- 微信小程序—picker(滚动选择器)
官方api:https://mp.weixin.qq.com/debug/wxadoc/dev/component/picker.html 上边是官网的api.小程序中,底部下拉滚动选择主要有这几种 ...
随机推荐
- URLDecoder异常解决方法
URLDecoder对参数进行解码时候,代码如: URLDecoder.decode(param,"utf-8"); 有时候会出现类似如下的错误: URLDecoder异常Ille ...
- GitLab 转让所有者权限
GitLab 转让所有者权限 没有查看文档,自己测试了一下,可能会有纰漏,谨慎阅读 私人项目的所有者 私人项目没有所有者权限,可以认为项目命名空间就是所有者. 私人项目http://xxxxxxxxx ...
- linux7手动添加systemctl启动程序
1.路径 [root@angrymushrooms01 system]# pwd /usr/lib/systemd/system 2.脚本内容 vim xxx.service ------------ ...
- Java环境变量配置,HelloWorld。
一 配置环境变量: 1.右键计算机属性 2.点击高级系统设置 3.点击环境变量 在新建页面,输入变量名“JAVA_HOME”:变量值“你的jdk的路径 在系统变量区域,选择“新建”,输入变量名“CL ...
- nginx进程模型解析
nginx进程模型解析 概念 master会发送请求给worker,用于处理用户的请求,模型图如下 nginx进程分类 master进程(只有1个) 接受信号传递给worker wo ...
- 如何为你的IDEA安装插件——几个实用插件推荐
文章目录 如何为你的IDEA安装插件--几个实用插件推荐 安装插件 插件推荐 1.Background Image Plus 2.Translation 3.CodeGlance 4.Rainbow ...
- DRF内置认证组件之自定义认证系统
自定义token认证 我们知道,在django项目中不管路由以及对应的视图类是如何写的,都会走到 dispatch 方法,进行路由分发, 在阅读 APIView类中的dispatch 方法的源码中,有 ...
- 【工具】OSS阿里云存储服务--超级简单--个人还是觉得Fastdfs好玩
介绍 阿里云对象存储服务(Object Storage Service,简称 OSS)为您提供基于网络的数据存取服务. 使用 OSS,您可以通过网络随时存储和调用包括文本.图片.音频和视频等在内的各种 ...
- nohup 命令的使用
nohup 命令的使用 1. nohup简介 nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号.在注销后使用 nohup 命令运行后台中的 ...
- install -M
[root@controller ~]# source admin-openrc [root@controller ~]# neutron ext-list +-------------------- ...