Lynx

<video>
4.1
experimental XElement

<video> 是 Lynx 中用于播放在线视频资源的实验性元素。它支持通过 UIMethod 控制播放,并会派发播放生命周期事件。

Warning

<video> 仍处于实验性早期阶段,API 可能在后续版本中调整。 欢迎在 lynx_video_element_spec.md 中参与贡献和反馈。

使用指南

基础用法

属性

src

Android
iOS
Harmony
4.1
experimental
src?: string;

视频资源 URL。仅支持在线网络 URL。

loop

Android
iOS
Harmony
4.1
experimental
// @默认值: false
loop?: boolean;

是否循环播放。

volume

Android
iOS
Harmony
4.1
experimental
// @默认值: 1.0
volume?: number;

播放音量,取值范围为 01

muted

Android
iOS
Harmony
4.1
experimental
// @默认值: false
muted?: boolean;

是否静音播放。

speed

Android
iOS
Harmony
4.1
experimental
// @默认值: 1.0
speed?: number;

播放速度,取值范围为 0.12.0

object-fit

Android
iOS
Harmony
4.1
experimental
// @默认值: 'contain'
'object-fit'?: 'contain' | 'cover' | 'fill';

视频缩放方式。

mode

Android
iOS
Harmony
4.1
experimental
// @默认值: 'queue'
mode?: 'queue' | 'direct' | 'latest';

UIMethod 执行模式。

timeupdate-interval

Android
iOS
Harmony
4.1
experimental
// @默认值: 0.33
'timeupdate-interval'?: number;

bindtimeupdate 事件派发的最小间隔,单位为秒。

事件

前端可以绑定对应事件回调来监听元素的运行时行为,如下所示。

bindfirstframe

Android
iOS
Harmony
4.1
experimental
bindfirstframe = (e: VideoFirstFrameEvent) => {};
字段类型可选默认值平台起始版本描述
durationnumber-
Android
iOS
Harmony
4.1
4.1视频总时长,单位为秒。

首帧加载完成时触发。

bindplaying

Android
iOS
Harmony
4.1
experimental
bindplaying = (e: VideoPlayingEvent) => {};

视频开始播放或恢复播放时触发。

bindpaused

Android
iOS
Harmony
4.1
experimental
bindpaused = (e: VideoPausedEvent) => {};

视频暂停播放时触发。

bindstopped

Android
iOS
Harmony
4.1
experimental
bindstopped = (e: VideoStoppedEvent) => {};

视频被 stop UIMethod 停止时触发。

bindtimeupdate

Android
iOS
Harmony
4.1
experimental
bindtimeupdate = (e: VideoTimeUpdateEvent) => {};
字段类型可选默认值平台起始版本描述
currentnumber-
Android
iOS
Harmony
4.1
4.1当前播放位置,单位为秒。
durationnumber-
Android
iOS
Harmony
4.1
4.1视频总时长,单位为秒。

播放位置更新时触发。

bindended

Android
iOS
Harmony
4.1
experimental
bindended = (e: VideoEndedEvent) => {};

视频完整播放结束时触发。

bindlooped

Android
iOS
Harmony
4.1
experimental
bindlooped = (e: VideoLoopedEvent) => {};

每次循环播放结束时触发。

binderror

Android
iOS
Harmony
4.1
experimental
binderror = (e: VideoErrorEvent) => {};
字段类型可选默认值平台起始版本描述
errorCodenumber-
Android
iOS
Harmony
4.1
4.1平台播放错误码。
errorMsgstring-
Android
iOS
Harmony
4.1
4.1平台播放错误信息。

视频播放发生错误时触发。

bindbuffering

Android
iOS
Harmony
4.1
experimental
bindbuffering = (e: VideoBufferingEvent) => {};
字段类型可选默认值平台起始版本描述
bufferingnumber-
Android
iOS
Harmony
4.1
4.1媒体时间轴上的缓冲结束位置,单位为秒。

视频缓冲时触发。

方法

前端可以通过 SelectorQuery API 调用组件方法。

方法回调可能收到以下响应字段:

字段类型可选描述
successboolean平台回调提供时,表示操作是否成功。
errorCodenumber操作失败时的错误码。
msgstring操作失败时的错误信息。
errorMsgstringHarmony 上操作失败时的错误信息。

play

Android
iOS
Harmony
4.1
experimental
lynx
  .createSelectorQuery()
  .select('#id')
  .invoke({
    method: 'play',
    success(res) {},
    fail(res) {},
  })
  .exec();

播放视频。

pause

Android
iOS
Harmony
4.1
experimental
lynx
  .createSelectorQuery()
  .select('#id')
  .invoke({
    method: 'pause',
    success(res) {},
    fail(res) {},
  })
  .exec();

暂停视频播放。

stop

Android
iOS
Harmony
4.1
experimental
lynx
  .createSelectorQuery()
  .select('#id')
  .invoke({
    method: 'stop',
    success(res) {},
    fail(res) {},
  })
  .exec();

停止视频播放。

seek

Android
iOS
Harmony
4.1
experimental
lynx
  .createSelectorQuery()
  .select('#id')
  .invoke({
    method: 'seek',
    params: {
      position: 2,
    },
    success(res) {},
    fail(res) {},
  })
  .exec();

跳转到目标播放位置。

字段类型可选默认值平台起始版本描述
positionnumber-
Android
iOS
Harmony
4.1
4.1目标播放位置,单位为秒。

兼容性

LCD tables only load in the browser

除非另有说明,本项目采用知识共享署名 4.0 国际许可协议进行许可,代码示例采用 Apache License 2.0 许可协议进行许可。