news 2026/11/5 1:55:00

微信小程序练习:video 组件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
微信小程序练习:video 组件

一、案例描述

设计一个小程序,演示 video 组件的功能和使用方法,以及发送弹幕和创建随机颜色的方法。小程序运行后可以播放视频,在指定时间显示预置弹幕,还可以通过输入框和按钮发送随机颜色的弹幕。

二、实现思路

  1. 页面中使用 video 组件播放视频,通过danmu-list设置弹幕列表,enable-danmu开启弹幕,danmu-btn显示弹幕开关按钮。
  2. 页面下方放置 input 输入框和 button 按钮,用于输入并发送弹幕。
  3. 在onLoad中通过wx.createSelectorQuery()获取 video 组件上下文VideoContext,发送弹幕时调用VideoContext.sendDanmu()接口。
  4. 编写getRandomColor()函数生成随机的十六进制颜色,让每次发送的弹幕颜色都不同。

三、核心代码

index.wxml

<navigation-bartitle="video组件"back="{{false}}"color="black"background="#FFF"></navigation-bar><scroll-viewclass="scrollarea"scroll-ytype="list"><viewclass="box"><viewclass="title">华为开发者大会-2026</view><viewclass="video-layout"><!-- video的danmu-btn属性在高的小程序基础库版本中不起作用,在低的版本中才起作用 --><videoid="my-video"src="{{videoPath}}"controls="true"danmu-list="{{danmuList}}"enable-danmu="true"danmu-btn="true"/></view><view><viewclass="txt-style">弹幕内容</view><inputtype="text"placeholder="在此处输入弹幕内容"bind:blur="inputBlur"/><buttontype="primary"bind:tap="sendDanmu">发送弹幕</button></view></view></scroll-view>

index.js

// 获取随机颜色functiongetRandomColor(){letrgb=[]for(letindex=0;index<3;index++){letcolor=Math.floor(Math.random()*256).toString(16)// 如果十六进制是1位,前面补0;如果是2位,前面不用补0color=color.length==1?'0'+color:color rgb.push(color)}return'#'+rgb.join('')}Page({data:{videoPath:'https://media.w3.org/2010/05/sintel/trailer.mp4',danmuList:[{text:'鸿蒙世界,奔腾不息',color:'#ff0000',time:1},{text:'HarmonyOS 7',color:'#ff00ff',time:5},{text:'华为开发者大会2026',color:'#00ff00',time:10},{text:'携手助力,筑牢金融安全',color:'#00ffff',time:20}]},onLoad(){// 创建视频上下文用于发送弹幕constquery=wx.createSelectorQuery()query.select('#my-video').context()query.exec((res)=>{if(res[0]){this.videoCtx=res[0].context}})},inputBlur(e){this.inputValue=e.detail.value},sendDanmu(){this.videoCtx.sendDanmu({text:this.inputValue,color:getRandomColor()})}})

四、关键知识点

  • video 常用属性:src视频地址、controls显示播放控件、danmu-list弹幕列表、enable-danmu是否展示弹幕、danmu-btn是否显示弹幕按钮。
  • danmu-list:数组元素的text为弹幕文字,color为弹幕颜色,time为弹幕出现的时间(秒)。
  • VideoContext.sendDanmu:通过视频上下文发送弹幕,参数为{ text, color }。
  • 随机颜色生成:Math.floor(Math.random() * 256).toString(16)生成 0~255 的十六进制数,不足两位时前面补 0,拼接成#rrggbb形式。

五、功能扩展:danmu-btn 与小程序基础库版本的关系

video 组件的danmu-btn属性在高版本的小程序基础库中不起作用,在低版本的基础库中才起作用。验证方法:在微信开发者工具中点击右上角"详情"→"本地设置"→"调试基础库",切换不同的基础库版本后重新编译:

  1. 基础库使用低版本时,视频播放时控制条上可以显示弹幕按钮;
  2. 基础库使用高版本时,视频播放时不显示弹幕按钮。

作业中已按此要求录制了演示视频,分别展示了低版本基础库下显示弹幕按钮、高版本基础库下不显示弹幕按钮两种情况。

六、总结

本案例通过 video 组件实现了视频播放、预置弹幕展示和随机颜色弹幕发送功能,并通过切换基础库版本验证了danmu-btn属性的版本兼容性问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/5 1:53:44

低代码和AI Coding怎么选?做企业应用,当然是全都要

低代码和AI Coding怎么选&#xff1f;做企业应用&#xff0c;当然是全都要一个报销应用&#xff0c;第一版要多久&#xff1f; 拖几个输入框&#xff0c;加上金额、附件&#xff0c;再接两级审批&#xff0c;页面已经很像样。换成AI Coding&#xff0c;把需求交给编程工具&…

作者头像 李华
网站建设 2026/11/5 1:50:53

PakePlus-Android:9分钟把任意网页打包成5MB的App

PakePlus-Android&#xff1a;9分钟把任意网页打包成5MB的App 【免费下载链接】PakePlus-Android Turn any webpage/HTML/Vue/React and so on into desktop and mobile app under 5M with easy in few minutes. 轻松将任意网站/HTML/Vue/React等项目构建为轻量级(小于5M)多端桌…

作者头像 李华
网站建设 2026/11/5 1:50:29

全新Python全栈自动化爬虫数据分析

数据分析的魔法当我们成功获得了大量的数据之后, 我们需要进行分析和处理, 这个阶段简直就像是一场魔法表演, 我们要运用强大的数据处理库, 比如NumPy, 将那些海量的数据变成有意义的信息, 这情形就好像是一位非常有智慧的学者在使用数据分析这个手段, 去寻找隐藏在数字背后的规…

作者头像 李华
网站建设 2026/11/5 1:49:16

5行代码给Codag接入新的LLM供应商:开发者实战教程

【免费下载链接】codag-visualizer Visualize AI/LLM workflows in your codebase. 项目地址&#xff1a; https://gitcode.com/gh_mirrors/co/codag-visualizer 点击查看 免费下载 Codag 是一款 VS Code 扩展&#xff0c;能自动扫描代码库中的 LLM API 调用与 AI 框架&#x…

作者头像 李华