@vuux/video
Version:
Vue Nuxt 视频播放器
127 lines (126 loc) • 2.26 kB
TypeScript
/**
* 播放器按钮类型
*/
export type Buttons = ['time', 'rate', 'volume', 'setting', 'pip', 'webFull', 'full'];
/**
* 视频水印类型
*/
export interface Watermark {
src: string;
width?: string;
height?: string;
}
/**
* 播放器状态类型
*/
export type ButStatus = 'play' | 'pause';
/**
* 视频状态类型
*/
export type VideoStatus = 'loading' | 'play' | 'playing' | 'paused' | 'ended' | 'error';
/**
* 事件消息类型
*/
export type Managed = {
el: EventTarget;
type: string;
handler: EventListenerOrEventListenerObject;
options?: boolean | AddEventListenerOptions;
};
/**
* 视频播放器状态类型
*/
export interface State {
/**
* 视频地址
*/
src: string;
/**
* 视频类型
*/
type: string;
/**
* 开始时间
*/
startTime: number;
/**
* 播放按钮状态
*/
butStatus: ButStatus;
/**
* 视频状态
*/
videoStatus: VideoStatus;
/**
* 视频状态提示信息
*/
mssage: string;
/**
* 当前播放时间|格式化为字符串"HH:MM:SS"
*/
currentTime: string;
/**
* 当前缓冲进度百分比(0-100)
*/
loaded: number;
/**
* 是否循环播放
*/
loop: boolean;
/**
* 控制条是否显示
*/
control: boolean;
/**
* 是否镜像模式
*/
mirror: boolean;
/**
* 是否关灯模式
*/
lights: boolean;
/**
* 视频总时长|格式化字符串"HH:MM:SS"
*/
totalTime: string;
/**
* 播放速度
*/
speed: number;
/**
* 当前音量(0-1)
*/
_volume: number;
/**
* 播放进度(0-1)
*/
progress: number;
/**
* 进度条光标悬停时间|格式化字符串
*/
cursorTime: string;
/**
* 是否全屏
*/
full: boolean;
/**
* 是否静音
*/
_muted: boolean;
/**
* 是否网页全屏模式
*/
webFull: boolean;
/**
* 是否显示封面
*/
isPoster: boolean;
/**
* 延迟隐藏控制条的定时器 ID
*/
clearTime: number;
/**
* 当前显示的菜单类型
*/
show: string;
}