/* tslint:disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ export interface Video { /** * 要播放视频的资源地址,支持网络路径、本地临时路径、云文件ID(2.3.0) */ src: string; /** * 指定视频时长 */ duration?: number; /** * 是否显示默认播放控件(播放/暂停按钮、播放进度、时间) */ controls?: boolean; /** * 弹幕列表 */ "danmu-list"?: { [k: string]: unknown; }; /** * 是否显示弹幕按钮,只在初始化时有效,不能动态变更 */ "danmu-btn"?: boolean; /** * 是否展示弹幕,只在初始化时有效,不能动态变更 */ "enable-danmu"?: boolean; /** * 是否自动播放 */ autoplay?: boolean; /** * 是否循环播放 */ loop?: boolean; /** * 是否静音播放 */ muted?: boolean; /** * 指定视频初始播放位置 */ "initial-time"?: number; /** * 在非全屏模式下,是否开启亮度与音量调节手势(废弃,见 vslide-gesture) */ "page-gesture"?: boolean; /** * 设置全屏时视频的方向,不指定则根据宽高比自动判断 */ direction?: "0" | "90" | "-90"; /** * 若不设置,宽度大于240时才会显示 */ "show-progress"?: boolean; /** * 是否显示全屏按钮 */ "show-fullscreen-btn"?: boolean; /** * 是否显示视频底部控制栏的播放按钮 */ "show-play-btn"?: boolean; /** * 是否显示视频中间的播放按钮 */ "show-center-play-btn"?: boolean; /** * 是否开启控制进度的手势 */ "enable-progress-gesture"?: boolean; /** * 当视频大小与 video 容器大小不一致时,视频的表现形式 */ "object-fit"?: "contain" | "fill" | "cover"; /** * 视频封面的图片网络资源地址或云文件ID(2.3.0)。若 controls 属性值为 false 则设置 poster 无效 */ poster?: string; /** * 是否显示静音按钮 */ "show-mute-btn"?: boolean; /** * 视频的标题,全屏时在顶部展示 */ title?: string; /** * 播放按钮的位置 */ "play-btn-position"?: "bottom" | "center"; /** * 是否开启播放手势,即双击切换播放/暂停 */ "enable-play-gesture"?: boolean; /** * 当跳转到本小程序的其他页面时,是否自动暂停本页面的视频播放 */ "auto-pause-if-navigate"?: boolean; /** * 当跳转到其它微信原生页面时,是否自动暂停本页面的视频 */ "auto-pause-if-open-native"?: boolean; /** * 在非全屏模式下,是否开启亮度与音量调节手势(同 page-gesture) */ "vslide-gesture"?: boolean; /** * 在全屏模式下,是否开启亮度与音量调节手势 */ "vslide-gesture-in-fullscreen"?: boolean; /** * 是否展示底部进度条 */ "show-bottom-progress"?: boolean; /** * 视频前贴广告单元ID,更多详情可参考开放能力视频前贴广告 */ "ad-unit-id": string; /** * 用于给搜索等场景作为视频封面展示,建议使用无播放 icon 的视频封面图,只支持网络地址 */ "poster-for-crawler": string; /** * 显示投屏按钮。安卓在同层渲染下生效,支持 DLNA 协议;iOS 支持 AirPlay 和 DLNA 协议。可以通过VideoContext的相关方法进行操作。 */ "show-casting-button"?: boolean; /** * 设置小窗模式: push, pop,空字符串或通过数组形式设置多种模式(如: ["push", "pop"]) */ "picture-in-picture-mode"?: | ("[]" | "push" | "pop") | { [k: string]: unknown; }; /** * 是否在小窗模式下显示播放进度 */ "picture-in-picture-show-progress"?: boolean; /** * 是否开启手机横屏时自动全屏,当系统设置开启自动旋转时生效 */ "enable-auto-rotation"?: boolean; /** * 是否显示锁屏按钮,仅在全屏时显示,锁屏后控制栏的操作 */ "show-screen-lock-button"?: boolean; /** * 是否显示截屏按钮,仅在全屏时显示 */ "show-snapshot-button"?: boolean; /** * 是否展示后台音频播放按钮 */ "show-background-playback-button"?: boolean; /** * 进入后台音频播放后的通知栏图标(Android 独有) */ "background-poster"?: string; /** * 格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版、体验版以及审核版本,版本号为 devtools 表示为开发者工具,其余为正式版本; */ "referrer-policy"?: "origin" | "no-referrer"; /** * 是否为 DRM 视频源 */ "is-drm"?: boolean; /** * 是否为直播源 */ "is-live"?: boolean; /** * DRM 设备身份认证 url,仅 is-drm 为 true 时生效 (Android) */ "provision-url"?: string; /** * DRM 设备身份认证 url,仅 is-drm 为 true 时生效 (iOS) */ "certificate-url"?: string; /** * DRM 获取加密信息 url,仅 is-drm 为 true 时生效 */ "license-url"?: string; /** * 指定码率上界,单位为比特每秒 */ "preferred-peak-bit-rate"?: number; /** * 当开始/继续播放时触发play事件 */ bindPlay?: () => void; /** * 当暂停播放时触发 pause 事件 */ bindPause?: () => void; /** * 当播放到末尾时触发 ended 事件 */ bindEnded?: () => void; /** * 播放进度变化时触发,event.detail = {currentTime, duration} 。触发频率 250ms 一次 */ bindTimeUpdate?: () => void; /** * 视频进入和退出全屏时触发,event.detail = {fullScreen, direction},direction 有效值为 vertical 或 horizontal */ bindFullScreenChange?: () => void; /** * 视频出现缓冲时触发 */ bindWaiting?: () => void; /** * 视频播放出错时触发 */ bindError?: () => void; /** * 加载进度变化时触发,只支持一段加载。event.detail = {buffered},百分比 */ bindProgress?: () => void; /** * 视频元数据加载完成时触发。event.detail = {width, height, duration} */ bindLoadedMetaData?: () => void; /** * 切换 controls 显示隐藏时触发。event.detail = {show} */ bindControlsToggle?: () => void; /** * 播放器进入小窗 */ bindEnterPictureInPicture?: () => void; /** * 播放器退出小窗 */ bindLeavePictureInPicture?: () => void; /** * seek 完成时触发 (position iOS 单位 s, Android 单位 ms) */ bindSeekComplete?: () => void; /** * 用户选择投屏设备时触发 detail = { state: "success"/"fail" } */ bindCastingUserSelect?: () => void; /** * 投屏成功/失败时触发 detail = { type, state: "success"/"fail" } */ bindCastingStateChange?: () => void; /** * 投屏被中断时触发 */ bindCastingInterrupt?: () => void; }