xverse-components-tv
Version:
xverse components tv
205 lines (204 loc) • 5.07 kB
TypeScript
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;
}