[微信小程序]列表视频播放,使用Video组件,点击播放自动停止其他视频.

前言

最近公司有了微信小程序需求,由于没有前端,被抓来做壮丁,原本是做java后端的,所以有何不妥知错敬请谅解,闲来无事,来记录下自己写的前端代码.

实现功能

本次小程序的需求主要如下:
1.视频的列表展示,列表中可播放,也可全屏播放
2.播放第二个视频时,自动停止第一个视频

效果图
效果图.png
主要代码
项目结构.png

Wxml代码如下:

<!--index.wxml-->
<view class="container">
  <!--首页-->
  <scroll-view class='nav-page'>
    <view class="item-box " wx:for="{{dataList}}" wx:key="item">
      <!-- 标题层 -->
      <view class="video-title-box">
        <view class='video-title'>{{item.title}}</view>
      </view>

      <!-- 视频图片层 -->
      <view data-id="{{index}}" class="video-image-box" style="display: {{ _index == index ? 'none' : 'block' }};" bindtap="videoPlay">
        <view class="video-cover-box">
          <image class="video-image" src="{{item.cover}}" mode="aspectFit">
          </image>
        </view>
        <!-- 视频按钮 -->
        <image class="video-image-play" src="/image/icon_short.png" mode="scaleToFill"></image>
      </view>

      <!-- 视频播放层 -->
      <video src="{{item.content}}" data-id="{{index}}" class='video' wx:if="{{_index == index}}" objectFit='contain' autoplay='true' controls></video>

    </view>
  </scroll-view>

</view>

Js代码如下:

//index.js
//获取应用实例
const app = getApp()

Page({
  data: {
    videoPlay: null,
    dataList: [],
  },
  onLoad: function () {
    this.getData();
    wx.hideShareMenu();
  },
  // 点击cover播放,其它视频结束
  videoPlay: function (e) {
    var _index = e.currentTarget.dataset.id
    this.setData({
      _index: _index
    })
    //停止正在播放的视频
    var videoContextPrev = wx.createVideoContext(_index+"")
    videoContextPrev.stop();
    setTimeout(function () {
      //将点击视频进行播放
      var videoContext = wx.createVideoContext(_index + "")
      videoContext.play();
    }, 500)
  },

  // 模拟数据加载
  getData: function () {
    this.setData({
      //  此数据过于长,为了美观再次用省略号代替 ,后面源码会提供.
      dataList: [...]
    });

  }
})

Wcss代码在此就不展示了,设计到逻辑处的代码也都添加了注释,在此就不再解释了.

源码

https://gitee.com/OrgXxxx/WechartMiniProgramVideoPlayList/tree/master

遇到的第一个坑

在最开始的时候,用的是微信提供的Scroll-view嵌套video组件,结果在测试的时候,IOS点击全屏播放时,出现如下左侧所示的分屏,返回列表后第二次点击全屏又正常了。但是在Android上测试有没有这种问题。


image.png

经过千辛万苦查找翻看文档,终于在微信scroll-view文档的底部发现了如下提示,于是把scroll-view 改成了上面代码中的view,就解决了。果然看文档不能囫囵吞枣啊!

Bug & Tip
tip: 请勿在 scroll-view 中使用 textarea、map、canvas、video 组件
tip: scroll-into-view 的优先级高于 scroll-top
tip: 在滚动 scroll-view 时会阻止页面回弹,所以在 scroll-view 中滚动,是无法触发 onPullDownRefresh
tip: 若要使用下拉刷新,请使用页面的滚动,而不是 scroll-view ,这样也能通过点击顶部状态栏回到页面顶部
遇到的第二个坑

一些图片在IOS真机上显示不出,调试模式上图片的尺寸、地址全都正常,电脑直接访问图片地址都没问题,Android也是没出现这个问题。简直天坑啊!

百度、谷歌了一番后,发现了,出现问题的图片格式为WebP(WebP格式,谷歌开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器宽带资源和数据空间。)IOS不兼容。

解决方案倒是挺简单,直接把图片格式转换为jpg就行了。(本人懒,于是正则替换地址处理的)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容