智能小程序 Ray 开发——媒体组件 Video 和 NativeVideo 实操讲解

video

导入

import { Video } from '@ray-js/ray';
import { createVideoContext } from '@ray-js/api';

视频

相关 API: createVideoContext

属性说明

属性类型默认值必填说明
srcstring要播放视频的资源地址,支持网络路径; 注意分区部署情况下,视频是否支持访问
durationnumber指定视频时长,单位秒 s
controlsbooleantrue是否显示默认播放控件(播放/暂停按钮、播放进度、时间)
danmuListArray<{text,color,time}>弹幕列表
danmuBtnbooleanfalse是否显示弹幕按钮,只在初始化时有效,不能动态变更
enableDanmubooleanfalse是否展示弹幕,只在初始化时有效,不能动态变更
autoplaybooleanfalse是否自动播放
loopbooleanfalse是否循环播放
mutedbooleanfalse是否静音播放
initialTimenumber0指定视频初始播放位置
showFullscreenBtnbooleantrue是否显示全屏按钮
showPlayBtnbooleantrue是否显示视频底部控制栏的播放按钮
showCenterPlayBtnbooleantrue是否显示视频中间的播放按钮
object-fitstringcontain当视频大小与 video 容器大小不一致时,视频的表现形式
posterstring视频封面的图片网络资源地址
showMuteBtnbooleanfalse是否显示静音按钮
autoPausebooleantrue非可视区域是否自动暂停
borderRadiusnumber0指定视频 border-radius
onPlayeventhandle当开始/继续播放时触发 play 事件
onPauseeventhandle当暂停播放时触发 pause 事件
onEndedeventhandle当播放到末尾时触发 ended 事件
onTimeupdateeventhandle播放进度变化时触发,event.detail = {currentTime, duration} 。
onWaitingeventhandle视频出现缓冲时触发
onErroreventhandle视频播放出错时触发
onProgresseventhandle加载进度变化时触发,只支持一段加载。event.detail = {buffered},百分比
onLoadedmetadataeventhandle视频元数据加载完成时触发。event.detail = {width, height, duration}
onSeekcompleteeventhandlerseek 完成时触发 (position iOS 单位 s, Android 单位 ms)
object-fit 的合法值
说明
contain包含
fill填充
cover覆盖

Bug & Tip

tip:video 默认宽度 300px、高度 225px,可通过 tyss 设置宽高。

tip:video 支持三种视频格式:MP4、WebM、Ogg。

  • MP4 = MPEG 4 文件使用 H264 视频编解码器和 AAC 音频编解码器
  • WebM = WebM 文件使用 VP8 视频编解码器和 Vorbis 音频编解码器
  • Ogg = Ogg 文件使用 Theora 视频编解码器和 Vorbis 音频编解码器

常见问题(FAQ)

如何获取视频播放进度?

可通过onTimeupdate 获取视频播放时长。

👉 立即免费领取开发资源,体验涂鸦 MiniApp 小程序开发。 

NativeVideo

基础库 2.5.0 开始支持, 低版本需做兼容处理。

导入

import { NativeVideo } from '@ray-js/ray';
import { createNativeVideoContext } from '@ray-js/api';

视频。

相关 API: createNativeVideoContext。这是基于异层渲染的原生组件, 请注意 原生组件使用限制。

属性说明

属性类型默认值必填说明
srcstring要播放视频的资源地址,支持网络路径; 注意分区部署情况下,视频是否支持访问
durationnumber指定视频时长,单位秒 s
controlsbooleantrue是否显示默认播放控件(播放/暂停按钮、播放进度、时间)
autoplaybooleanfalse是否自动播放
loopbooleanfalse是否循环播放
mutedbooleanfalse是否静音播放
initialTimenumber0指定视频初始播放位置
showFullscreenBtnbooleantrue是否显示全屏按钮
showPlayBtnbooleantrue是否显示视频底部控制栏的播放按钮
showCenterPlayBtnbooleantrue是否显示视频中间的播放按钮
objectFitstringcontain当视频大小与 video 容器大小不一致时,视频的表现形式
posterstring视频封面的图片网络资源地址
showMuteBtnbooleanfalse是否显示静音按钮
borderWidthnumber0边框的宽度, 单位 px
borderStylestringsolid边框的样式, 可选值: solid 和 dashed
borderColorstring#ffffff边框的颜色, 必须为十六进制格式
borderRadiusnumber0边框的圆角, 单位 px
borderRadiusTopLeftnumber边框的左上角圆角大小, 单位 px
borderRadiusTopRightnumber边框的右上角圆角大小, 单位 px
borderRadiusBottomLeftnumber边框的左下角圆角大小, 单位 px
borderRadiusBottomRightnumber边框的右下角圆角大小, 单位 px
backgroundColorstring#ffffff背景颜色, 必须为十六进制格式
onPlayeventhandle当开始/继续播放时触发 play 事件
onPauseeventhandle当暂停播放时触发 pause 事件
onEndedeventhandle当播放到末尾时触发 ended 事件
onTimeupdateeventhandle播放进度变化时触发,event.detail = {currentTime, duration} 。
onFullscreenchangeeventhandle视频进入和退出全屏时触发,event.detail = {fullScreen, direction},direction 有效值为 vertical 或 horizontal
onWaitingeventhandle视频出现缓冲时触发
onErroreventhandle视频播放出错时触发
onProgresseventhandle加载进度变化时触发,只支持一段加载。event.detail = {buffered},百分比
onLoadedmetadataeventhandle视频元数据加载完成时触发。event.detail = {width, height, duration}
onControlstoggleeventhandle切换 controls 显示隐藏时触发。event.detail = {show}
onSeekcompleteeventhandlerseek 完成时触发 (position iOS 单位 s, Android 单位 ms)
object-fit 的合法值
说明
contain包含
fill填充
cover覆盖

Bug & Tip

  1. tip:native-video 默认宽度 300px、高度 225px,可通过 tyss 设置宽高。
  2. tip:相关原理请参考 基于异层渲染的原生组件。
  3. tip:请注意 原生组件使用限制。
  4. tip:native-video 支持三种视频格式:MP4。
  • MP4 = MPEG 4 文件使用 H264 视频编解码器和 AAC 音频编解码器

👉 立即免费领取开发资源,体验涂鸦 MiniApp 小程序开发。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/605218.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uni-app实战在线教育类app开发

随着移动互联网的快速发展&#xff0c;教育行业也在不断向在线化、数字化方向转型。开发一款功能丰富、用户体验优秀的在线教育类 App 对于满足学习者需求、促进教育行业的发展至关重要。本文将介绍如何利用 Uni-App 进行在线教育类 App 的开发&#xff0c;让您快速上手&#x…

svg画扇形进度动画

有人问下面这种图好怎么画&#xff1f;svg 想了下&#xff0c;确实用svg可以&#xff0c;可以这么设计 外层是一个容器放置内容&#xff0c;并且设置overflow:hidden&#xff0c; 内层放一个半径大于容器宽高一半的svg&#xff0c;并定位居中&#xff0c;然后svg画扇形&#x…

如何评估大模型音频理解能力-从Gemini说起

Gemini家族包含Ultra、Pro和Nano三种大小的模型是谷歌开发的大型多模态人工智能模型&#xff0c;它在人工智能的多模态领域实现了重大突破&#xff0c;结合了语言、图像、音频和视频的理解能力。 Gemini的性能评估情况如下&#xff1a; Gemini模型的评估的具体指标从文本理解能…

量化地形处理

1: 量化地形切片&#xff1a;GDAL查询数据&#xff1b;CTB算法转mesh&#xff1b;高度图需要和周围高度图边界做高度融合&#xff0c;四顶点需要做平均值融合&#xff1b;法线想要在前端显示正确必须将mesh坐标转为4326或者3857&#xff1b; 这个使用开源即可&#xff1a;cesi…

【进程间通信】共享内存

文章目录 共享内存常用的接口指令利用命名管道实现同步机制总结 System V的IPC资源的生命周期都是随内核的。 共享内存 共享内存也是为了进程间进行通信的&#xff0c;因为进程间具有独立性&#xff0c;通信的本质是两个不同的进程看到同一份公共资源&#xff0c;所以共享内存…

数仓开发,分层(ods,dw,app层)

1、从数据源中导入源数据&#xff0c;到ODS表&#xff0c;作为事实表的数据 2、可以根据自己的开发设计&#xff0c;是否单独分支出来一个维度表&#xff0c;帮助和协助处理源数据表ODS层 和需求层ADS&#xff08;APP&#xff09;层 3、现在我们有了一个事实ODS层&#xff0…

【R语言】边缘概率密度图

边缘概率密度图是一种在多变量数据分析中常用的图形工具&#xff0c;用于显示每个单独变量的概率密度估计。它通常用于散点图的边缘&#xff0c;以便更好地理解单个变量的分布情况&#xff0c;同时保留了散点图的相关性信息。 在边缘概率密度图中&#xff0c;每个变量的概率密度…

Linux-信号保存

1. 概念 进程执行信号的处理动作&#xff0c;称为 信号递达&#xff08;Delivery&#xff09; 信号从产生到递达之间的状态&#xff0c;称为 信号未决&#xff08;Pending&#xff09; 进程可以选择 阻塞&#xff08;Block&#xff09;某个信号 过程&#xff1a; 信号产生 ——…

Java的BIO/NIO/AIO

1. Java中的BIO、NIO和AIO的基本概念及其主要区别 BIO (Blocking I/O): 传统的同步阻塞I/O模型。每个连接创建成功后都需要一个线程来处理&#xff0c;如果连接没有数据可读&#xff0c;则线程会阻塞在读操作上。这种模型简单易理解&#xff0c;但在高并发环境下会消耗大量系统…

苹果Mac用户下载VS Code(Universal、Intel Chip、Apple Silicon)哪个版本?

苹果macOS用户既可以下载通用版&#xff08;Universal&#xff09;&#xff0c;软件将自动检测用户的处理器并进行适配。 也可以根据型号下载对应CPU的版本&#xff1a; 使用Intel CPU的Mac电脑可下载Intel Chip版本&#xff1b; 使用苹果自研M系列CPU的Mac电脑下载Apple Si…

Animation: (1) animatedline

目录 示例1&#xff1a;显示线条动画示例2&#xff1a;指定动画线条颜色示例3&#xff1a;指定日期时间和持续时间值示例4&#xff1a;设置最大点数示例5&#xff1a;批量添加点以生成快速动画示例6&#xff1a;使用drawnow limitrate创建快速动画示例7&#xff1a;定时更新屏幕…

如何获取中国各省市区的边界

前几个专栏我介绍了获取各流域边界的方法&#xff0c;可参见以下的文章&#xff1a; 格林兰岛和南极洲的流域边界文件下载-CSDN博客 读取shp文件中的经纬度坐标-CSDN博客 读取谷歌地球的kml文件中的经纬度坐标_谷歌地球识别穿过矿区的公路,并获取公路的经纬度坐标-CSDN博客 关于…

docker-compose部署gitlab

需要提前安装docker和docker-compose环境 参考&#xff1a;部署docker-ce_安装部署docker-ce-CSDN博客 参考&#xff1a;docker-compose部署_docker compose部署本地tar-CSDN博客 创建gitlab的数据存放目录 mkdir /opt/gitlab && cd mkdir /opt/gitlab mkdir {conf…

算法学习Day2——单调栈习题

第一题&#xff0c;合并球 题解&#xff1a;一开始写了一次暴力双循环&#xff0c;直接O(n^2)严重超时&#xff0c;后面于是又想到了O(n)时间复杂度的链表&#xff0c;但是还是卡在 最后一个数据会TLE&#xff0c;我也是高兴的拍起来安塞腰鼓和华氏护肤水&#xff0c;后面学长给…

内网安全【2】——域防火墙/入站出站规则/不出网隧道上线/组策略对象同步

-隧道技术&#xff1a;解决不出网协议上线的问题(利用出网协议进行封装出网)&#xff08;网络里面有网络防护&#xff0c;防火墙设置让你不能正常访问网络 但有些又能正常访问&#xff0c;利用不同的协议tcp udp 以及连接的方向&#xff1a;正向、反向&#xff09; -代理技术&…

《ESP8266通信指南》13-Lua 简单入门(打印数据)

往期 《ESP8266通信指南》12-Lua 固件烧录-CSDN博客 《ESP8266通信指南》11-Lua开发环境配置-CSDN博客 《ESP8266通信指南》10-MQTT通信&#xff08;Arduino开发&#xff09;-CSDN博客 《ESP8266通信指南》9-TCP通信&#xff08;Arudino开发&#xff09;-CSDN博客 《ESP82…

数据库管理-第185期 23ai:一套关系型数据干掉多套JSON存储(20240508)

数据库管理185期 2024-05-08 数据库管理-第185期 23ai:一套关系型数据干掉多套JSON存储&#xff08;20240508&#xff09;1 上期示例说明2 两个参数2.1 NEST/UNNEST2.2 CHECK/NOCHECK 3 一数多用3.1 以用户维度输出订单信息3.2 以产品维度3.3 以产品种类维度 4 美化输出总结 数…

出差——蓝桥杯十三届2022国赛大学B组真题

问题分析 该题属于枚举类型&#xff0c;遍历所有情况选出符合条件的即可。因为只需要派两个人&#xff0c;因此采用两层循环遍历每一种情况。 AC_Code #include <bits/stdc.h> using namespace std; string str;//选择的两人 bool ok(){if(str.find("A")!-1…

SwiGLU激活函数

SwiGLU激活函数已经成为LLM的标配了。它是GLU的变体&#xff0c;公式如下&#xff1a; SwiGLU ⁡ ( x , W , V , b , c , β ) Swish ⁡ β ( x W b ) ⊗ ( x V c ) \operatorname{SwiGLU}(x, W, V, b, c, \beta)\operatorname{Swish}_\beta(x Wb) \otimes(x Vc) SwiGLU(x,…

CSS---复合选择器和元素显示模式(三)

一、CSS的复合选择器 1.1 什么是复合选择器 在CSS中&#xff0c;可以根据选择器的类型把选择器分为基础选择器和复合选择器&#xff0c;复合选择器是建立在基础选择器之上&#xff0c;对基本选择器进行组合形成的。 复合选择器是由两个或多个基础选择器连写组成&#xff0c;它…
最新文章