0.2.8 • Published 2 years ago

@vanwei-wcs/video-player v0.2.8

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

wcs-video-player

🚀 wcs 视频播放器组件 🌈. 快速方便的播放WCS平台设备视频.

安装

npm i @vanwei-wcs/video-player

使用

import wcsVideoPlayer from ' @vanwei-wcs/video-player'
import ' @vanwei-wcs/video-player/themes/base.css'
// vue template里面代码
<wcsVideoPlayer
  ref="player"
></wcsVideoPlayer>

组件api

属性 Attributes

组件的props

参数说明类型可选值默认值
websocket-urlwebsocket连接地址,必传string--
get-login-params获取websocket登录鉴权的参数,方法需返回一个对象,内容是{token:'aaaaaasdasd'}或者{name:'username',key:'3k4h5k2j3h52j34'},对象里面字段的含义请参照wcs api文档,必传Function--
play-type播放视频方式. preview(直播预览);record(录像)stringpreview / recordpreview
init-stream-type初始化播放视频的格式,如果设置enable-auto-change-stream为true,组件会根据流类型自动修改播放格式(仅限于H264和H265之间转换)stringH264 / H265 / HTTP_FLV / WEBSOCKET_FLVH264
default-video-quality默认视频清晰度. 0(高清);1(标清);2(流畅)number0 / 1 / 21
default-enable-a-i开启智能识别开关boolean-false
default-enable-p-t-z播放器内云台控制开关boolean-false
show-loading是否显示loading动画和文字boolean-true
show-error-message是否显示错误信息boolean-true
enable-auto-change-stream开启自动修改流格式,仅限于H264和H265之间转换boolean-true
ws-optionswebsocket的参数,具体请参照npm库@vanwei-wcs/websocketobject-{maxReconnectionDelay: 5000,minReconnectionDelay: 2000,maxRetries: Infinity,enableHeartbeat: true,debug: false}
options播放参数,详细参见下方 options解释object--
showHeader是否显示播放器上方名称栏boolean-true
showFooter是否显示播放器下方控制栏boolean-true
debug播放器debugboolean-false

options解释

参数说明类型可选值默认值
namespace操作类请求namespacestring-'WCS/main'
streamNamespace流操作namespacestring-'WCS/MMS'
openAudio是否开启音频,只对播放方式为H264和flv有效,实验性功能boolean-false
objectFit视频在video dom的填充方式 对应css的 "object-fit"stringfill / containfill
flvBaseUrlflv播放方式的 根url,只是兼容老的wcs未返回完整flv url的情况,一般不用设置string--
h265DecoderPathH265播放方式必传,H265解码器远程文件路径,用于下载服务器上面存放的js文件,例如文件存放在 http://www.example.com/static/javascript/h265/H265Decoder.js,则传入文本为 '/static/javascript/h265/H265Decoder.js'string--
playerDebug打印播放器日志boolean-false

事件 Events

事件名说明参数
video-status-change视频播放状态改变,具体值参见字典定义里面的VideoStatusstatus
video-quality-change视频清晰度改变quality
video-speed-change视频播放速度改变speed
video-error-change视频播放错误的回调message
video-stream-change视频播放格式改变streamType
stream-type-error接收到的流格式不符合初始化格式的回调{received,expect}
video-size-change视频宽高大小改变{videoWidth,videoHeight}
statics-info-change视频统计信息改变. speed流量速度(单位Kb/s);fps每秒多少帧{speed,fps}
stop-video调用了closeVideo()后的回调

方法 Methods

方法说明参数
openVideo打开直播视频,play-type需要设置为preview, path必传,例如 openVideo({path:'/aada/wew'})data:{path:string}
openRecordVideo打开录像视频,play-type需要设置为record,path和recordMessage必传,recordMessage详细解析见下方recordMessage解释data:{path:string},recordMessage:{params:{},ext_info:{}}
changeQuality切换清晰度,具体值参见属性default-video-qualityvideoQuality
changePlayStatus录像模式下,改变视频的暂停与播放,只能传入播放(2)与暂停(3)状态值status
changePlaySpeed录像模式下,改变视频播放速度,具体值参见字典定义里面的VideoSpeedspeed
cleanVideo清空视频,关闭视频流,销毁播放器,重置一些属性,不销毁websocket连接-
closeVideo关闭视频,除了cleanVideo外,还会关闭websocket连接,重置video dom元素
sendMessage发送api请求,参数有message和ctx,详细解释参见下方sendMessage参数解释message,ctx
capture对视频流进行截取,参数中download为true会下载图片,为false或不设置返回图片base64,默认false,此方法返回Promise,失败返回失败信息{download}
fullscreen视频全屏
setScreenMessage设置视频的错误信息,message为string类型message

recordMessage解释

  • params
参数说明类型可选值默认值
start_time开始时间戳,必传number--
end_time结束时间戳,必传number--
speed播放速度,0.0625和16可能有些设备不支持number具体值参见字典定义里面的VideoSpeed1
record_id录像片段id,(当streamNamespace为WCS/MMS必传,其他情况未知)numberstring--
  • ext_info

不必传,根据api接口自定义

sendMessage参数解释

  • message

api接口,msg_id可以设置为0,组件内部有自增数字去设置

  • ctx

执行上下文,具体值有params和cb, params是一个对象,可以放入任何值;cb是一个回调函数,当发送消息时,会添加一个message中msg_id对应ctx的map,当组件内部获取到服务端发来的消息时,如果msg_id的map存在,会执行cb方法(params作为参数),具体使用方法参照下方示例

const message = {namespace:"wcs/main",request:"xxxx"}
const ctx = { params:{ a:'aaa' }, cb:sendMessageCallback }
// const ctx = { params:{ a:'aaa' }, cb:sendMessageCallback.bind(this) } // 有this指向问题使用这种方式

sendMessage(message,ctx)

function sendMessageCallback(res,params){
  console.log(res) // api接口返回数据
  console.log(params) // { a:'aaa' }
}

字典定义

const VideoStatus = {
  vConnect: 0, // 开始连接
  vStart: 1, // 开始播放
  vPlay: 2, // 正在播放
  vPause: 3, // 暂停
  vStop: 4 // 停止
}

const VideoSpeed = [0.0625, 0.125, 0.25, 0.5, 1, 2, 4, 8, 16]
0.2.8

2 years ago

0.2.7

2 years ago

0.2.6

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago