UNPKG

xverse-components-tv

Version:

xverse components tv

205 lines (204 loc) 5.07 kB
import { ISnippet } from '@xverse/matrix-shared-types'; import { CSSProperties } from 'react'; import { IInteraction } from 'xverse-components-video-interaction'; export declare const snippet: ISnippet; export interface IGreenScreenConfig { /** * @title 【绿幕】是否是普通视频 * @default false * @description 默认为双通道视频,选择是则为普通视频 */ isNormalGreenScreen?: boolean; /** * @title 【绿幕】是否忽略地面检测 * @default true * @description 默认为true */ isIgnoreDepthTest?: boolean; } /** * @title TV分辨率大小 */ export interface ITVResolution { /** * @title 宽度 * @default 16 */ width: number; /** * @title 高度 * @default 9 */ height: number; } /** * @componentName TV * @title TV * @type 3D * @contributor 甘晶 钟跃 陈安娜 * @description 支持 播放在3d场景中视频 * @hasChildren */ export interface ITVProps { /** * @isBaseInitOption */ componentId: string; /** * @title TV3D资产(模型) * @setter AssetMeshSetterTV * @isBaseInitOption */ bomId: string; /** * @title TV 的源地址 * @setter VideoSetter;ImageSetter * @description 支持视频和图片,如果是图片,则当作贴图展示 * @isBaseInitOption */ url?: string; /** * @title 视频封面 * @setter ImageSetter * @description TV的源是视频时,需要配置封面 * @isBaseInitOption */ posterUrl?: string; /** * @title 初始播放状态 * @description true为播放,false为暂停,默认为暂停 * @default false * @isBaseInitOption */ autoPlay?: boolean; /** * @title 循环播放 * @default true * @isBaseInitOption */ loop?: boolean; /** * @title 是否只展示首帧图片 * @default false * @description 如果开启,tv配置源地址为视频的时候也会只展示图片,图片源为视频的首帧 * @notExternal * @isBaseInitOption */ isOnlyShowFirstFrame?: boolean; /** * @title 是否响应点击全屏播放 * @default false * @description 点击就全屏播放,优先级高于点击暂停或播放的逻辑 * notExternal */ isClickToPlayFull?: boolean; /** * @title 关闭全屏按钮样式 * @setter StyleSetter */ fullScreenCloseButtonStyle?: CSSProperties; /** * @title 支持点击播放/暂停 * @default false */ canPause?: boolean; /** * @title 暂停时支持点击播放 * @default false * @description 仅支持暂停时,点击播放;播放时,点击不响应 * @notExternal */ canPlayWhenPaused?: boolean; /** * @title 组件销毁时是否销毁场景中的TV * @default false * @notExternal */ disposeWhenComponentsDispose?: boolean; /** * @title 视频填充模式 * @default Cover * @notExternal * @isBaseInitOption */ fitMode?: 'Fill' | 'Contain' | 'Cover'; /** * @title 交互视频配置 * @slot VideoInteraction * @description 配置时间为秒级别,即1000的整数倍 * @notExternal */ interactiveTimeQueue?: IInteraction[]; /** * @title 是否静音 * @default false * @isBaseInitOption */ muted?: boolean; /** * @title 是否单独控制 * @default false * @description 如果声音开启了单独控制,可以在要控制该音频的组件里选中该组件 * @isBaseInitOption */ isSeparateControlVolume?: boolean; /** * @title 是否使用自定义控件 * @description * @default false * @notExternal * @isBaseInitOption */ needCustomControl?: boolean; /** * @title video容器样式设置 * @description video父容器宽高等样式设置 * @setter StyleSetter * @notExternal */ videoContainerStyle?: CSSProperties; /** * @title TV的分辨率大小 * @notExternal * @isBaseInitOption */ resolution?: ITVResolution; /** * @title 是否是绿幕视频 * @default false * @notExternal * @isBaseInitOption */ isGreenScreen?: boolean; /** * @title 绿幕视频配置 * @notExternal * @isBaseInitOption */ greenScreenConfig?: IGreenScreenConfig; /** * @title 点击全屏展示的回调 */ onShowFullScreen?: () => void; /** * @title 关闭全屏展示的回调 */ onCloseFullScreen?: () => void; /** * @title 点击 tv 的回调 */ onClick?: () => void; /** * @title 视频播放结束的回调 */ onEnd?: () => void; /** * @title 视频可播放触发的回调 */ onCanPlay?: () => void; /** * @title 视频第一帧触发的回调 * @notExternal */ onFirstTimeUpdate?: () => void; }