export type CreateVideoContext = (videoId : string.VideoIdString, component ?: ComponentPublicInstance | null) => VideoContext | null; export type Danmu = { /** * 弹幕文字 */ text ?: string | null, /** * 弹幕颜色 */ color ?: string | null, /** * 显示时刻 */ time ?: number | null }; export type RequestFullScreenOptions = { /** * direction * - 0: 正常竖向 * - 90: 屏幕逆时针90度 * - -90: 屏幕顺时针90度 * @type 0 | 90 | -90 * @uniPlatform { * "app": { * "android": { * "osVer": "4.4", * "uniVer": "√", * "unixVer": "3.9.0" * }, * "ios": { * "osVer": "12.0", * "uniVer": "√", * "unixVer": "4.11" * } * }, * "web": { * "uniVer": "x", * "unixVer": "x" * } * } */ direction ?: number | null }; export interface VideoContext { /** * @description 播放 * @uniPlatform { * "app": { * "android": { * "osVer": "4.4", * "uniVer": "√", * "unixVer": "3.9.0" * }, * "ios": { * "osVer": "12.0", * "uniVer": "√", * "unixVer": "4.11" * } * }, * "web": { * "uniVer": "√", * "unixVer": "4.0" * } * } * @uniVueVersion 2,3 */ play() : void; /** * @description 暂停 * @uniPlatform { * "app": { * "android": { * "osVer": "4.4", * "uniVer": "√", * "unixVer": "3.9.0" * }, * "ios": { * "osVer": "12.0", * "uniVer": "√", * "unixVer": "4.11" * } * }, * "web": { * "uniVer": "√", * "unixVer": "4.0" * } * } * @uniVueVersion 2,3 */ pause() : void; /** * @description 跳转到指定位置 * @param {number} position 跳转到指定位置(秒) * @uniPlatform { * "app": { * "android": { * "osVer": "4.4", * "uniVer": "√", * "unixVer": "3.9.0" * }, * "ios": { * "osVer": "12.0", * "uniVer": "√", * "unixVer": "4.11" * } * }, * "web": { * "uniVer": "√", * "unixVer": "4.0" * } * } * @uniVueVersion 2,3 */ seek(position : number) : void; /** * @description 停止视频 * @uniPlatform { * "app": { * "android": { * "osVer": "4.4", * "uniVer": "√", * "unixVer": "3.9.0" * }, * "ios": { * "osVer": "12.0", * "uniVer": "√", * "unixVer": "4.11" * } * }, * "web": { * "uniVer": "√", * "unixVer": "4.0" * } * } * @uniVueVersion 2,3 */ stop() : void; /** * @description 发送弹幕 * @param {Danmu} 属性 text, color * @uniPlatform { * "app": { * "android": { * "osVer": "4.4", * "uniVer": "√", * "unixVer": "3.9.0" * }, * "ios": { * "osVer": "12.0", * "uniVer": "√", * "unixVer": "4.11" * } * }, * "web": { * "uniVer": "√", * "unixVer": "4.0" * } * } * @uniVueVersion 2,3 */ sendDanmu(danmu : Danmu) : void; /** * @description 设置倍速播放 * @param {number} rate, 支持倍率 0.5/0.8/1.0/1.25/1.5 * @uniPlatform { * "app": { * "android": { * "osVer": "4.4", * "uniVer": "√", * "unixVer": "3.9.0" * }, * "ios": { * "osVer": "12.0", * "uniVer": "√", * "unixVer": "4.11" * } * }, * "web": { * "uniVer": "√", * "unixVer": "4.0" * } * } * @uniVueVersion 2,3 */ playbackRate(rate : number) : void; /** * @description 进入全屏 * @param {RequestFullScreenOptions} direction, 0|正常竖向, 90|屏幕逆时针90度, -90|屏幕顺时针90度 * @uniPlatform { * "app": { * "android": { * "osVer": "4.4", * "uniVer": "√", * "unixVer": "3.9.0" * }, * "ios": { * "osVer": "12.0", * "uniVer": "√", * "unixVer": "4.11" * } * }, * "web": { * "uniVer": "√", * "unixVer": "4.0" * } * } * @uniVueVersion 2,3 */ requestFullScreen(direction ?: RequestFullScreenOptions | null) : void; /** * 退出全屏 * @description 退出全屏 * @uniPlatform { * "app": { * "android": { * "osVer": "4.4", * "uniVer": "√", * "unixVer": "3.9.0" * }, * "ios": { * "osVer": "12.0", * "uniVer": "√", * "unixVer": "4.11" * } * }, * "web": { * "uniVer": "√", * "unixVer": "4.0" * } * } * @uniVueVersion 2,3 */ exitFullScreen() : void; } export interface Uni { /** * 创建并返回 video 上下文 videoContext 对象 * @description 创建并返回 video 上下文 videoContext 对象 * @uniPlatform { * "app": { * "android": { * "osVer": "4.4", * "uniVer": "√", * "unixVer": "√" * }, * "ios": { * "osVer": "12.0", * "uniVer": "√", * "unixVer": "4.11" * } * }, * "web": { * "uniVer": "√", * "unixVer": "4.0" * } * } * @uniVueVersion 2,3 * @return {VideoContext} video组件上下文对象 * * @tutorial http://uniapp.dcloud.io/api/media/video-context?id=createVideoContext * */ createVideoContext : CreateVideoContext } /** * 通用事件 */ interface UniVideoEvent { type : string target : Element | null currentTarget : Element | null timeStamp : Long } /** * timeupdate 事件 * 播放进度变化时触发 */ export interface UniVideoTimeUpdateEvent extends UniVideoEvent { detail : UniVideoTimeUpdateEventDetail } export type UniVideoTimeUpdateEventDetail = { /** * 当前进度 */ currentTime : number, /** * 总进度 */ duration : number } /** * fullscreenchange 事件 * 当视频进入和退出全屏是触发 */ export interface UniVideoFullScreenChangeEvent extends UniVideoEvent { detail : UniVideoFullScreenChangeEventDetail } export type UniVideoFullScreenChangeEventDetail = { /** * 是否全屏 */ fullScreen : boolean, /** * 横竖屏,取值 vertical 或 horizontal */ direction : string } /** * error 事件 * 视频播放出错时触发 */ export interface UniVideoErrorEvent extends UniVideoEvent { detail : VideoError } /** * 统一错误码 * 100001 网络错误 * 200001 内部错误 * 300001 SDK错误 */ export type VideoErrorCode = 100001 | 200001 | 300001 export interface VideoError extends IUniError { errCode : VideoErrorCode } /** * progress 事件 * 加载进度变化时触发 */ export interface UniVideoProgressEvent extends UniVideoEvent { detail : UniVideoProgressEventDetail } export type UniVideoProgressEventDetail = { /** * 加载进度百分比 */ buffered : number } /** * fullscreenclick 事件 * 视频播放全屏播放时点击事件 */ export interface UniVideoFullScreenClickEvent extends UniVideoEvent { detail : UniVideoFullScreenClickEventDetail } export type UniVideoFullScreenClickEventDetail = { /** * 点击点相对于屏幕左侧边缘的 X 轴坐标 */ screenX : number, /** * 点击点相对于屏幕顶部边缘的 Y 轴坐标 */ screenY : number, /** * 屏幕总宽度 */ screenWidth : number, /** * 屏幕总高度 */ screenHeight : number } /** * controlstoggle 事件 * 切换播放控件显示隐藏时触发 */ export interface UniVideoControlsToggleEvent extends UniVideoEvent { detail : UniVideoControlsToggleEventDetail } export type UniVideoControlsToggleEventDetail = { /** * 是否显示 */ show : boolean } export type VideoTimeUpdateEvent = UniVideoTimeUpdateEvent export type VideoTimeUpdateEventDetail = UniVideoTimeUpdateEventDetail export type VideoFullScreenChangeEvent = UniVideoFullScreenChangeEvent export type VideoFullScreenChangeEventDetail = UniVideoFullScreenChangeEventDetail export type VideoErrorEvent = UniVideoErrorEvent export type VideoProgressEvent = UniVideoProgressEvent export type VideoProgressEventDetail = UniVideoProgressEventDetail export type VideoFullScreenClickEvent = UniVideoFullScreenClickEvent export type VideoFullScreenClickEventDetail = UniVideoFullScreenClickEventDetail export type VideoControlsToggleEvent = UniVideoControlsToggleEvent export type VideoControlsToggleEventDetail = UniVideoControlsToggleEventDetail