1e41f4b71Sopenharmony_ci# video 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ci> **说明:** 5e41f4b71Sopenharmony_ci> 6e41f4b71Sopenharmony_ci> - 从API version 4开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 7e41f4b71Sopenharmony_ci> 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci视频播放组件。 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci## 子组件 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci不支持。 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci## 属性 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci除支持[通用属性](js-components-common-attributes.md)外,还支持如下属性: 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci| 名称 | 类型 | 默认值 | 必填 | 描述 | 22e41f4b71Sopenharmony_ci| -------- | ------- | ----- | ---- | ---------------------------------------- | 23e41f4b71Sopenharmony_ci| muted | boolean | false | 否 | 视频是否静音播放。 | 24e41f4b71Sopenharmony_ci| src | string | - | 否 | 播放视频内容的路径。 | 25e41f4b71Sopenharmony_ci| autoplay | boolean | false | 否 | 视频是否自动播放。 | 26e41f4b71Sopenharmony_ci| controls | boolean | true | 否 | 控制视频播放的控制栏是否显示,如果设置为false,则不显示控制栏。默认为true,由系统决定显示或隐藏控制栏。 | 27e41f4b71Sopenharmony_ci 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci## 样式 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci除支持[通用样式](js-components-common-styles.md)外,还支持如下样式: 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci| 名称 | 类型 | 默认值 | 必填 | 描述 | 34e41f4b71Sopenharmony_ci| ---------- | ------ | ------- | ---- | ---------------------------------------- | 35e41f4b71Sopenharmony_ci| object-fit | string | contain | 否 | 视频源的缩放类型,如果poster设置了值,那么此配置还会影响视频海报的缩放类型,可选值参考表 object-fit 类型说明。 | 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ci**表1** object-fit 类型说明 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ci| 类型 | 描述 | 40e41f4b71Sopenharmony_ci| ---- | ------------------------- | 41e41f4b71Sopenharmony_ci| fill | 不保持宽高比进行放大缩小,使得图片填充满显示边界。 | 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci## 事件 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ci除支持[通用事件](js-components-common-events.md)外,还支持如下事件: 47e41f4b71Sopenharmony_ci 48e41f4b71Sopenharmony_ci| 名称 | 参数 | 描述 | 49e41f4b71Sopenharmony_ci| ---------- | ---------------------------------------- | ------------------------------------- | 50e41f4b71Sopenharmony_ci| prepared | { duration: value }<sup>5+</sup> | 视频准备完成时触发该事件,通过duration可以获取视频时长,单位为s。 | 51e41f4b71Sopenharmony_ci| start | - | 播放时触发该事件。 | 52e41f4b71Sopenharmony_ci| pause | - | 暂停时触发该事件。 | 53e41f4b71Sopenharmony_ci| finish | - | 播放结束时触发该事件。 | 54e41f4b71Sopenharmony_ci| error | - | 播放失败时触发该事件。 | 55e41f4b71Sopenharmony_ci| seeking | { currenttime: value } | 操作进度条过程时上报时间信息,单位为s。 | 56e41f4b71Sopenharmony_ci| seeked | { currenttime: value } | 操作进度条完成后,上报播放时间信息,单位为s。 | 57e41f4b71Sopenharmony_ci| timeupdate | { currenttime: value } | 播放进度变化时触发该事件,单位为s,更新时间间隔为250ms。 | 58e41f4b71Sopenharmony_ci 59e41f4b71Sopenharmony_ci 60e41f4b71Sopenharmony_ci## 方法 61e41f4b71Sopenharmony_ci 62e41f4b71Sopenharmony_ci除支持[通用方法](js-components-common-methods.md)外,还支持如下方法: 63e41f4b71Sopenharmony_ci 64e41f4b71Sopenharmony_ci| 名称 | 参数 | 描述 | 65e41f4b71Sopenharmony_ci| -------------- | ------------------------------------- | ----------------- | 66e41f4b71Sopenharmony_ci| start | - | 请求播放视频。 | 67e41f4b71Sopenharmony_ci| pause | - | 请求暂停播放视频。 | 68e41f4b71Sopenharmony_ci| setCurrentTime | { currenttime: value } | 指定视频播放的进度位置,单位为s。 | 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci> **说明:** 71e41f4b71Sopenharmony_ci> 在attached组件生命周期回调后,可以调用上述组件方法。 72e41f4b71Sopenharmony_ci 73e41f4b71Sopenharmony_ci## 示例 74e41f4b71Sopenharmony_ci 75e41f4b71Sopenharmony_ci```html 76e41f4b71Sopenharmony_ci<!-- xxx.hml --> 77e41f4b71Sopenharmony_ci<div class="container"> 78e41f4b71Sopenharmony_ci <video id='videoId' src='/common/myDeram.mp4' muted='false' autoplay='false' 79e41f4b71Sopenharmony_ci controls='true' onprepared='preparedCallback' onstart='startCallback' 80e41f4b71Sopenharmony_ci onpause='pauseCallback' onfinish='finishCallback' onerror='errorCallback' 81e41f4b71Sopenharmony_ci onseeking='seekingCallback' onseeked='seekedCallback' 82e41f4b71Sopenharmony_ci ontimeupdate='timeupdateCallback' 83e41f4b71Sopenharmony_ci style="object-fit:fill; width:80%; height:400px;" 84e41f4b71Sopenharmony_ci onclick="change_start_pause"> 85e41f4b71Sopenharmony_ci </video> 86e41f4b71Sopenharmony_ci</div> 87e41f4b71Sopenharmony_ci``` 88e41f4b71Sopenharmony_ci 89e41f4b71Sopenharmony_ci```css 90e41f4b71Sopenharmony_ci/* xxx.css */ 91e41f4b71Sopenharmony_ci.container { 92e41f4b71Sopenharmony_ci justify-content: center; 93e41f4b71Sopenharmony_ci align-items: center; 94e41f4b71Sopenharmony_ci} 95e41f4b71Sopenharmony_ci``` 96e41f4b71Sopenharmony_ci 97e41f4b71Sopenharmony_ci```js 98e41f4b71Sopenharmony_ci// xxx.js 99e41f4b71Sopenharmony_ciexport default { 100e41f4b71Sopenharmony_ci data: { 101e41f4b71Sopenharmony_ci event:'', 102e41f4b71Sopenharmony_ci seekingtime:'', 103e41f4b71Sopenharmony_ci timeupdatetime:'', 104e41f4b71Sopenharmony_ci seekedtime:'', 105e41f4b71Sopenharmony_ci isStart: true, 106e41f4b71Sopenharmony_ci duration: '', 107e41f4b71Sopenharmony_ci }, 108e41f4b71Sopenharmony_ci preparedCallback:function(e){ this.event = '视频连接成功'; this.duration = e.duration;}, 109e41f4b71Sopenharmony_ci startCallback:function(){ this.event = '视频开始播放';}, 110e41f4b71Sopenharmony_ci pauseCallback:function(){ this.event = '视频暂停播放'; }, 111e41f4b71Sopenharmony_ci finishCallback:function(){ this.event = '视频播放结束';}, 112e41f4b71Sopenharmony_ci errorCallback:function(){ this.event = '视频播放错误';}, 113e41f4b71Sopenharmony_ci seekingCallback:function(e){ this.seekingtime = e.currenttime; }, 114e41f4b71Sopenharmony_ci timeupdateCallback:function(e){ this.timeupdatetime = e.currenttime;}, 115e41f4b71Sopenharmony_ci change_start_pause: function() { 116e41f4b71Sopenharmony_ci if(this.isStart) { 117e41f4b71Sopenharmony_ci this.$element('videoId').pause(); 118e41f4b71Sopenharmony_ci this.isStart = false; 119e41f4b71Sopenharmony_ci } else { 120e41f4b71Sopenharmony_ci this.$element('videoId').start(); 121e41f4b71Sopenharmony_ci this.isStart = true; 122e41f4b71Sopenharmony_ci } 123e41f4b71Sopenharmony_ci }, 124e41f4b71Sopenharmony_ci} 125e41f4b71Sopenharmony_ci``` 126e41f4b71Sopenharmony_ci 127