微信小程序实现抖音视频效果

news/2024/7/20 1:26:57 标签: 微信小程序, 音视频, 小程序

当我们进行开发的时候可能会遇到需要实现抖音视频效果的需求,并且网上该效果的开源代码少,找到的开源代码代码量大,很难进行二次开发

对此我将自己的代码进行简化,仅留下可动性高的代码模块
在这里插入图片描述
以上是实现效果与此处demo的模板

wxml文件:

<swiper vertical="true" bindchange="nextVideo">
  <swiper-item wx:for="{{viList}}">
    <video loop="true" enable-progress-gesture="true"	object-fit="contain" src="{{item.vio}}" id="video{{index}}" />  
    <view class="video-right">
      <view class="video-right-img" style="margin-bottom: 10rpx; background-image: url({{item.avatar}})" data-user_id="{{item.user_id}}" bindtap="toOtherUser"></view>
        点赞 评论 转发
    </view>
    <view class="video-btm">
      <view class="video-btm-con">
        <text>@{{item.name}}</text><text>\t创建时间</text>
        <view>标题</view>
      </view>
    </view>
  </swiper-item>
</swiper>

wxss文件:

page{
  background-color: #000;
}
 
swiper{
  height: 100vh;
  width: 100vw;
}
 
swiper video{
  height: 100vh;
  width: 100%;
}
 
.video-right{
  height: 38vh;
  width: 80rpx;
  position: fixed;
  right: 15rpx;
  top: 50vh;
  color: #fff;
}
 
.video-right-img{
  height: 80rpx;
  width: 80rpx;
  border-radius: 100rpx;
  background-color: aquamarine;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
 
.video-btm{
  height: 180rpx;
  width: 100vw;
  position: fixed;
  bottom: 0;
  color:#fff;
}
 
.video-btm-con{
  width: 90vw;
  margin: 0 auto;
}

js文件:

// pages/index5/index5.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    viList:[
      {
        vio:'https://assets.mixkit.co/videos/preview/mixkit-movement-in-a-large-avenue-at-night-in-timelapse-44688-large.mp4',
        avatar:'https://profile-avatar.csdnimg.cn/6ef2193c2e9649c88356336c626e5777_m0_64944135.jpg',
        name:'xiaoshen'
      },
      {
        vio:'https://assets.mixkit.co/videos/preview/mixkit-movement-in-a-large-avenue-at-night-in-timelapse-44688-large.mp4',
        avatar:'	https://profile.csdnimg.cn/7/A/9/1_2201_75886543',
        name:'kami'
      }
    ]
  },
 
  onLoad(options) {
    // 调用播放视频方法
    this.startUp()
  },
 
  // 进页面时播放视频
  startUp(){
    // 获取video节点
    let createVideoContext = wx.createVideoContext('video0')
    // 播放视频
    createVideoContext.play()
  },
 
  // 切换视频的时候播放视频
  // 注:此方法视频如果过大可能会叠音,所以视频需要压缩,或者可以尝试循环节点关闭视频
  nextVideo(e){
    // 播放当前页面视频
    let index = 'video' + e.detail.current
    this.playVio(index)
    // 暂停前一个页面视频
    if(e.detail.current-1 >= 0){
      let index1 = 'video' + (e.detail.current-1)
      this.pauseVio(index1)
    }
    // 暂停后一个页面视频
    if(e.detail.current+1 < this.data.viList.length){
      let index2 = 'video' + (e.detail.current+1)
      this.pauseVio(index2)
    }
  },
 
  // 播放视频
  playVio(index){
    // 获取video节点
    let createVideoContext = wx.createVideoContext(index)
    // 播放视频
    createVideoContext.play()
  },
 
  // 暂停视频
  pauseVio(index){
    // 获取video节点
    let createVideoContext = wx.createVideoContext(index)
    // 暂停视频
    createVideoContext.pause()
  }
})

http://www.niftyadmin.cn/n/1692392.html

相关文章

RabbitMQ学习笔记 04、Springboot集成RabbitMQ

文章目录前言springboot继承rabbitmq实操生产者服务消费者服务测试前言 本篇博客是SpringBoot集成RabbitMQ&#xff0c;若文章中出现相关问题&#xff0c;请指出&#xff01; 所有博客文件目录索引&#xff1a;博客目录索引(持续更新) 博客案例代码可见&#xff1a;Gitee-de…

php unset 多可以什么_PHP随机取一算法(一)

在我们日常PHP面试过程中&#xff0c;算法方面的问题自然是必不可少的&#xff0c;并且大家都知道算法是程序的核心。那么从本篇文章开始&#xff0c;我们会陆续为大家介绍PHP算法系列相关的知识。下面我们就给大家介绍PHP随机取一算法。PHP取一算法&#xff0c;顾名思义用PHP求…

phstrom配置php_PhpStorm 配置php7.0环境 - phpstorm配置php环境

PhpStorm 配置php7.0环境下载xmapp7..0版本是的你没看错&#xff0c;就是32位是的你没看错&#xff0c;我用了集成包而不是单独配是的你没看错我下的是7.0版本而不是最新的版本关于安装只有一个要强调这个mysql必须要选上无论你电脑装没装MySQL可能有尝试过phpstudy的就是那个装…

《图解物联网》读书笔记

文章目录前言一、基础知识二、物联网架构三、物联网设备四、先进的感测技术五、物联网服务的系统开发第八章、物联网与机器人前言 本篇博客是在阅读《图解物联网》书籍的读书笔记&#xff0c;若文章中出现相关问题&#xff0c;请指出&#xff01; 所有博客文件目录索引&#…

愤怒的小鸟4只编外鸟_幼儿园飞来一只漂亮小鸟!竟是国家二级保护动物八色鸫...

扬子晚报网9月11日讯(通讯员 陈倩 记者 陈勇)9月10日上午&#xff0c;一只身披彩色羽毛的奇特小鸟飞进了玄武区黑墨营路附近的一所幼儿园里&#xff0c;吸引了老师和小朋友们的目光。玄武警方接到报警后&#xff0c;将这只小鸟送到了红山动物园野生动物救助中心安置&#xff0c…

《双十一不一样的技术创新》2016出版 读书笔记

文章目录前言目录一、基础设施1.1、万亿交易量级下的秒级监控1.2、 软硬件结合的思考和实践三、中间件3.1 万亿级数据洪峰下的分布式消息引擎四、电商云化五、业务架构5.2、双十一核心链路的故事5.3、千亿访问量下的开放平台技术揭秘5.4 智能供应链六、大数据七、人工智能八、交…

gis连接表格到数据库失败_GeoPackage - 一个简便轻量的本地地理数据库

GeoPackage&#xff08;以下简称gpkg&#xff09;&#xff0c;内部使用SQLite实现的一种单文件、与操作系统无关的地理数据库。当前标准是1.2.1&#xff0c;该版本的html版说明书&#xff1a;https://www.geopackage.org/spec121/index.html。本文简单介绍一些最需要关注的特点…

C++学习——基础,名字空间,结/联/枚,字符串

一、C语言概述 面向对象的语言 二、第一个C程序 1.vi first.cpp 两种编译方式&#xff1a; 1&#xff09;g first.cpp 2&#xff09;gcc first.cpp -lstdc 2.文件扩展名 1&#xff09;xx.cpp 2&#xff09;xx.cc 3&#xff09;xx.C 4&#xff09;xx.cxx 建议使用第一…