# JSVideoController
**Repository Path**: chinasoft_ohos/jsvideo-controller
## Basic Information
- **Project Name**: JSVideoController
- **Description**: 一款播放器控制页面应用
- **Primary Language**: JavaScript
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-09-09
- **Last Updated**: 2021-09-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# JSVideoController
## 简介
建议用真机执行该项目,模拟器加载网络视频速度较慢;部分功能API 6才能使用。
该项目是一款播放器控制页面应用,底层播放器现采用鸿蒙JS原生video,上层采用自定义的布局,生成部分场景的控制页面,可实现主流视频应用的部分功能,如播放、全屏、选集、倍速等功能。

如上图,底层采用原生video播放器,上层为三个不同的页面,根据播放器的视频播放状态,切换上层页面,上层页面可实现一些拓展功能,如选集、切换清晰度等,也可实现常见功能,如播放、暂停、重播、拖动进度条等,对于常见功能,执行操作时会将行为回调给video,执行video相应操作,如在视频播放时点击暂停按钮,通过回调执行video的pause()方法暂停播放。
***详细流程***

video通过传入的路径加载视频资源,可以是本地视频,也可以是网络视频。
加载中页面loadingController:可显示加载中动画;可显示实时网速。
播放控制页playingController:可对视频进行一系列操作,如播放/暂停、全屏、选集、调节播放速度,除播放/暂停、全屏按钮外,其他所有按钮均在全屏横屏状态下才显示,且均可隐藏,用户可自定义按钮的组合;所有按钮都有默认图标,也可由用户传入图标资源替换;点击选集、调节播放速度可以弹出选择列表,列表数据由用户传入,此项目只是作为页面展示;此外,底部左右两侧还提供了自定义按钮,用户可根据所需实现按钮的功能。
播放完成页replayController:可进行视频重复播放,下侧有推荐列表,可由用户传入视频列表进行展示。
## 页面展示




## 用法说明
***属性***
playingController
| 属性 | 类型 | 默认值 | 描述 |
| ------------------ | ------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| isPageShow | boolean | true | 设置页面是否显示,true:可见,false:隐藏 |
| playState | number | -1 | 视频播放状态,可选值有:
const.VIDEO_STATE.PREPARING:准备中;
const.VIDEO_STATE.PREPARED:准备完成;
const.VIDEO_STATE.START:播放开始;
const.VIDEO_STATE.PAUSE:暂停;
const.VIDEO_STATE.FINISH:播放完成;
const.VIDEO_STATE.ERROR:错误。 |
| imgBackSrc | string | '/common/images/image-back.png' | 设置左上角返回按钮图片资源 |
| title | string | 'Title' | 设置标题 |
| isBatteryShow | boolean | true | 设置右上方电量是否可见,true:可见,false:隐藏 |
| isTimeShow | boolean | true | 设置右上方时间是否可见,true:可见,false:隐藏 |
| imgPlaySrc | Array | ['/common/images/play.svg', '/common/images/pause.svg'] | 设置播放按钮图片资源,传入一个长度为2的string数组,第一个为播放按钮资源,第二个为暂停按钮资源 |
| fullScreenSrc | Array | ['/common/images/full-screen.svg', '/common/images/cancel-full-screen.svg'] | 设置全屏按钮图片资源,传入一个长度为2的string数组,第一个为进入全屏按钮资源,第二个为退出全屏按钮资源 |
| isHorizontal | boolean | false | 当前视频是否为横屏,true:横屏,false:竖屏 |
| isQualityShow | boolean | true | 设置清晰度按钮是否可见,true:可见,false:隐藏 |
| isSetsShow | boolean | true | 设置选集按钮是否可见,true:可见,false:隐藏 |
| currentValue | number | 0 | 当前播放时间总数,单位:秒 |
| duration | number | 0 | 视频时长总数,单位:秒 |
| leftButtonList | Array