在前端开发中,视频播放功能非常重要,而 video-react
就是一个基于 React 的视频播放组件。该组件提供了丰富的 API 和自定义样式,使得使用它能轻松地实现视频播放功能。
安装
在使用 video-react
之前,我们需要先安装它。可以通过 npm 来安装,执行以下命令即可:
npm install --save video-react
使用
在安装完成后,我们可以通过如下方式来使用 video-react
组件:
-- -------------------- ---- ------- ------ ----- ---- -------- ------ - ------ - ---- -------------- ----- -------- - ----- -- - ------ - -------- ------- ------------------------------------------- --------- -- -- ------ ------- ---------
在上面的例子中,我们使用 import
语句引入了 Player
组件,并在组件中放置了一个 source
元素,用于指定要播放的视频 URL。
API
Player
组件
属性
aspectRatio
:视频宽高比,默认值'16:9'
autoPlay
:自动播放视频,默认值false
buffered
:视频缓存区间,可以为 Array、TimeRanges 或者是一个字符串,默认值undefined
className
:自定义类名,默认值''
fluid
:是否自适应宽度,默认值为false
。若为true
,则将aspectRatio
属性忽略height
:视频高度,可以为整数或字符串,如'100%'
,默认值undefined
loop
:是否循环播放,默认值false
muted
:是否静音播放,默认值false
onAbort
:中止事件onCanPlay
:当视频准备好可以播放时触发onCanPlayThrough
:当视频可以不间断播放时触发onDurationChange
:当视频时长改变时触发onEmptied
:当媒体元素变为空(没内容)时触发onEnded
:当视频播放完毕时触发onError
:视频加载错误时触发onLoadedData
:当视频元素准备好被播放时触发onLoadedMetadata
:当视频元数据被加载时触发onLoadStart
:视频加载开始时触发onPause
:视频暂停时触发onPlay
:视频开始播放时触发onPlaying
:视频正在播放中的时候触发onProgress
:提供和视频加载有关信息的事件onRateChange
:视频速率改变时触发onSeeked
:当视频跳跃的时候触发onSeeking
:当视频正在用户进度条跳跃中触发onStalled
:视频网速失速时触发onSuspend
:视频暂停播放时触发onTimeUpdate
:视频更新时间轴时触发onVolumeChange
:视频音量变化时触发onWaiting
:视频正在缓冲时触发playbackRate
:视频播放速度,默认值1.0
playsInline
:控制视频是否播放inline,默认值为true
,在 iOS 下设置为false
poster
:视频封面图片preload
:视频加载模式,可选值为'auto'
、'metadata'
和'none'
,默认值'auto'
src
:要播放的视频 URL,可以是一个字符串,也可以是一个列表。URL 内容可以是视频文件,也可以是字幕文件,YouTube 或 Vimeo 等的链接title
:视频标题,默认值undefined
volume
:音量大小,范围在 0.0 到 1.0 之间,默认值1.0
width
:视频宽度,可以为整数或字符串,如'100%'
,默认值undefined
方法
play()
:播放视频pause()
:暂停视频
BigPlayButton
组件
大播放按钮
属性
className
:自定义类名,默认值''
children
:自定义子元素,覆盖默认的 SVG 图标元素
ControlBar
组件
控制条组件
属性
autoHide
:自动隐藏控制条,默认值true
autoHideTime
:自动隐藏时间,默认值3
(单位:秒)className
:自定义类名,默认值''
disableDefaultControls
:是否显示浏览器默认的 HTML5 视频控制条。当为true
时,ControlBar
会自动显示disableCompletely
:是否完全禁用ControlBar
。当为true
时,控制条不会显示player
:Player
的一个实例。这个属性是必传的currentTimeDisplay
:是否显示当前时间,默认值true
durationDisplay
:是否显示总时间,默认值true
progressControl
:是否显示进度条,默认值true
volumeMenuButton
:是否显示音量控制按钮,默认值true
fullscreenControl
:是否显示全屏按钮,默认值true
additionalControls
:其他自定义控制按钮,可以是数组。例如,我们可以添加一个ReplayControl
按钮:
-- -------------------- ---- ------- ----- ------------- - ----- -- - ----- ----------- - -- -- - -- ------ ------ ------------- -- ------ - ------- -------------------- ---------------------- ------ --------- -- -- ----------- ------------------------------------ --
LoadingSpinner
组件
加载动画组件
属性
className
:自定义类名,默认值''
Overlay
组件
覆盖层组件
属性
className
:自定义类名,默认值''
onClick
:单击事件overlays
:自定义覆盖层,可以是一个组件或一个回调函数
例如,我们可以添加一个带有标题的覆盖层:
-- -------------------- ---- ------- ----- ------------- - ----- -- - ------ - ---- --------------------- -------------- ------- ----------- ------ -- -- -------- -------- -------------------------- -- ---------
PosterImage
组件
视频海报组件
属性
className
:自定义类名,默认值''
style
:自定义样式children
:自定义子元素
ReplayControl
组件
重新播放组件
属性
className
:自定义类名,默认值''
seconds
:重新播放的秒数,默认值10
示例
-- -------------------- ---- ------- ------ ------ - -------- - ---- -------- ------ - ------- ----------- ---------------------- - ---- -------------- ------ ------------------------------------------------------ ----- -------- - ----- -- - ----- ----- ------- - ------------------------------------------------------- ----- -------------- ---------------- - -------------- ------ - ------- --------- ---------------------------- ------------ ----------------------- ---------- -- ---- -- ----- --------- -- ------------- --------- -- -- ------ ------- ---------
在上面的例子中,我们首先通过 useState
定义了 src
和 playbackRate
两个状态,并在组件中使用了 Player
和 ControlBar
两个主要组件。
此外,我们还设置了播放速度菜单按钮组件 PlaybackRateMenuButton
,并将可选的播放速度值传递给了 rates
属性。
总结
在本文中,我们介绍了 video-react
的基本用法、API 和相关组件,并给出了使用示例。video-react
组件提供了丰富的功能和可自定义样式,可以轻松地集成到 React 应用程序中。希望本文能对您学习 video-react
好处。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedb3dcb5cbfe1ea06111df