@@ -5,6 +5,7 @@ import * as I18n from '@ezuikit/utils-i18n';
55import I18n__default from '@ezuikit/utils-i18n' ;
66import Service , { DeviceCapacityRes , DeviceInfoRes } from '@ezuikit/utils-service' ;
77import { EzopenURL } from '@ezuikit/utils-tools' ;
8+ import { PlayerPluginRecord } from '@ezuikit/player-plugin-record' ;
89import EventEmitter from 'eventemitter3' ;
910
1011/**
@@ -52,7 +53,7 @@ interface PlayerOptions {
5253 */
5354 streamInfoCBType : 0 | 1 ;
5455}
55- interface IResult$1 < T > {
56+ interface IResult < T > {
5657 data ?: T ;
5758 code ?: number ;
5859 msg ?: string ;
@@ -108,127 +109,6 @@ interface IBufferItem {
108109 duration : number ;
109110}
110111
111- interface IResult < T > {
112- data ?: T ;
113- code ?: number ;
114- msg ?: string ;
115- }
116- /**
117- * 播放器标准接口
118- */
119- interface PlayerInterface extends EventEmitter {
120- playing : boolean ;
121- volume : number ;
122- playbackRate : number ;
123- deviceCapacity : Record < string , any > ;
124- i18n : any ;
125- logger : any ;
126- event : EventEmitter ;
127- wasmplayer : any ;
128- _wss_info : any ;
129- _options : any ;
130- /**
131- * 播放
132- * @param options
133- * @returns {Promise }
134- */
135- play : ( options ?: any ) => Promise < unknown > ;
136- /**
137- * 暂停播放
138- * @returns
139- */
140- pause : ( bool ?: boolean ) => Promise < unknown > ;
141- /**
142- * 销毁并断流
143- * @returns
144- */
145- destroy : ( ) => Promise < unknown > ;
146- /**
147- * 截图
148- * @param {string } name 文件名 默认时间戳(new Date().getTime())
149- * @param {"png" | "jpeg" } fmt 图片格式
150- * @param {"base64" } type 文件格式 默认base64
151- * @param {boolean } download 是否直接下载 默认不直接下载
152- * @returns 返回base64字符
153- */
154- snapshot : ( name ?: string , fmt ?: 'jpeg' , type ?: 'base64' , download ?: boolean ) => Promise < IResult < {
155- fileName ?: string ;
156- base64 ?: string ;
157- } | null > > ;
158- /**
159- * 开始录制视频
160- * @param {string } name 文件名 默认时间戳(new Date().getTime())
161- * @param {"mp4" } fmt 图片格式 默认mp4
162- * @returns
163- */
164- startRecord ?: ( name ?: string , fmt ?: 'mp4' ) => Promise < any > ;
165- /**
166- * 停止录制
167- * @returns
168- */
169- stopRecord ?: ( ) => Promise < any > ;
170- /**
171- * 全屏
172- * @returns
173- */
174- fullScreen : ( ) => Promise < void > ;
175- /**
176- * 退出全屏
177- * @returns
178- */
179- exitScreen : ( ) => Promise < void > ;
180- /**
181- * 设置画布/视频的尺寸 不设置 默认使用容器的高宽(充满容器)
182- * @param {number= } width 画布的宽度
183- * @param {number= } height 画布的高度
184- * @returns
185- */
186- resize : ( width ?: number , height ?: number ) => Promise < {
187- width : number ;
188- height : number ;
189- } > ;
190- /**
191- * 设置音量
192- * @param volume 音量 [0-1], 0:表示静音
193- * @returns {void }
194- */
195- setVolume : ( volume : number ) => void ;
196- /**
197- * 设置封面
198- * @param url
199- * @returns
200- */
201- setPoster ?: ( postUrl : string ) => void ;
202- /**
203- * 设置播放速度
204- * @param rate
205- * @returns
206- */
207- setPlaybackRate ?: ( rate : number ) => void ;
208- /**
209- * 当前版本号
210- * @returns
211- */
212- getVersion : ( ) => object ;
213- /**
214- * 设置日志打印的级别 INFO | LOG | WARN | ERROR
215- *
216- *
217- * @param {string } level 日志级别 一次从大到小 3 -> 0 (为了更好的扩展)
218- * @returns
219- */
220- setDebug ?: ( level : 'INFO' | 'LOG' | 'WARN' | 'ERROR' ) => void ;
221- }
222-
223- interface PlayerPlugin {
224- name : string ;
225- init ?: ( player ?: PlayerInterface ) => void ;
226- beforeExec ?: ( player ?: PlayerInterface ) => boolean | Promise < boolean > ;
227- exec : ( player ?: PlayerInterface ) => void ;
228- afterExec ?: ( player ?: PlayerInterface ) => void ;
229- destroy ?: ( player ?: PlayerInterface ) => void ;
230- }
231-
232112declare class ESCanvas {
233113 constructor ( szCanvasId : any ) ;
234114 m_iCanvasWidth : any ;
@@ -582,32 +462,32 @@ interface WasmDecoderStatue {
582462 bSupHardOrSoft : boolean ;
583463 bSupHardDecAVC : boolean ;
584464 bSupHardDecHEVC : boolean ;
585- cmd : ' loaded' | ' onebyone' ;
465+ cmd : " loaded" | " onebyone" ;
586466 errorCode : number ;
587467 status : any ;
588468}
589469
590470type Zoom3DCallback = ( oRECT ?: any ) => void ;
591471
592- type SnapshotFmt = ' jpeg' ;
472+ type SnapshotFmt = " jpeg" ;
593473
594474/**
595475 * @description 插件管理系统
596476 */
597477declare class PluginManager {
598478 context : EZopenPlayer ;
599- plugins : Map < string , PlayerPlugin > ;
479+ plugins : Map < string , PlayerPluginRecord > ;
600480 constructor ( player : EZopenPlayer ) ;
601481 /**
602482 * @description 注册插件做个插件
603483 * @param plugins
604484 */
605- usePlugins ( plugins : PlayerPlugin [ ] ) : Promise < void > ;
485+ usePlugins ( plugins : PlayerPluginRecord [ ] ) : Promise < void > ;
606486 /**
607487 * @description 注册插件
608488 * @param plugins
609489 */
610- use ( plugin : PlayerPlugin ) : Promise < void > ;
490+ use ( plugin : PlayerPluginRecord ) : Promise < void > ;
611491 /**
612492 * @description 通过name销毁指定插件
613493 * @param {string } name 插件名
@@ -764,7 +644,7 @@ interface EZopenPlayerOptions extends PlayerOptions {
764644 /** 全屏节点 */
765645 fullScreenEle ?: HTMLElement ;
766646 /** 指定解码类型, v1 软解 v3 包括硬解和多线程 */
767- decoderType ?: ' auto' | 'v1' | 'v3' ;
647+ decoderType ?: " auto" | "v1" | "v3" ;
768648 /** 下载当前原始视频流,用于调试,不能动态设置,结束或销毁播放时自动保存成文件并下载 */
769649 debugDownloadData ?: boolean ;
770650 extraParams ?: {
@@ -781,7 +661,7 @@ interface EZopenPlayerOptions extends PlayerOptions {
781661 isLive ?: boolean ;
782662}
783663declare class EZopenPlayer extends EventEmitter {
784- _options : EZopenPlayerOptions ;
664+ _options : EZopenPlayerOptions | undefined ;
785665 static EVENT_TYPE : {
786666 initializing : string ;
787667 loadstart : string ;
@@ -861,7 +741,6 @@ declare class EZopenPlayer extends EventEmitter {
861741 */
862742 event : any ;
863743 isHls : boolean ;
864- isLive : boolean ;
865744 initializing : boolean ;
866745 loading : boolean ;
867746 /** 播放速度 */
@@ -884,6 +763,10 @@ declare class EZopenPlayer extends EventEmitter {
884763 $container : HTMLElement ;
885764 esCanvas : ESCanvas ;
886765 fECCorrect : FECCorrect ;
766+ /** 当前播放时间,单位秒 */
767+ currentTime : number ;
768+ /** 视频总时长,单位秒 */
769+ duration : number ;
887770 _oStreamClient : StreamClient ;
888771 _aHead : Uint8Array ;
889772 /** @private */
@@ -926,7 +809,7 @@ declare class EZopenPlayer extends EventEmitter {
926809 * @param options
927810 * @returns
928811 */
929- play ( options ?: Partial < Pick < EZopenPlayerOptions , ' url' | ' accessToken' > > ) : Promise < unknown > ;
812+ play ( options ?: Partial < Pick < EZopenPlayerOptions , " url" | " accessToken" > > ) : Promise < unknown > ;
930813 _wss_play ( szUrl : string , oParams ?: {
931814 playURL : string ;
932815 } ) : Promise < unknown > ;
@@ -961,7 +844,7 @@ declare class EZopenPlayer extends EventEmitter {
961844 * @param {boolean } canvas 是否使用 canvas
962845 * @returns 返回base64字符
963846 */
964- snapshot ( name ?: string , fmt ?: SnapshotFmt , type ?: ' base64' , download ?: boolean , canvas ?: boolean ) : Promise < IResult$1 < {
847+ snapshot ( name ?: string , fmt ?: SnapshotFmt , type ?: " base64" , download ?: boolean , canvas ?: boolean ) : Promise < IResult < {
965848 fileName ?: string | undefined ;
966849 base64 ?: string | undefined ;
967850 } | null > > ;
@@ -972,7 +855,7 @@ declare class EZopenPlayer extends EventEmitter {
972855 * @param {boolean } download 是否直接下载 默认不直接下载 false
973856 * @returns 返回base64字符
974857 */
975- snapshotByCanvas ( name ?: string , fmt ?: SnapshotFmt , download ?: boolean ) : Promise < IResult$1 < {
858+ snapshotByCanvas ( name ?: string , fmt ?: SnapshotFmt , download ?: boolean ) : Promise < IResult < {
976859 fileName ?: string | undefined ;
977860 base64 ?: string | undefined ;
978861 } | null > > ;
@@ -1008,7 +891,7 @@ declare class EZopenPlayer extends EventEmitter {
1008891 * @description 插件管理
1009892 * @param plugin 插件
1010893 */
1011- use ( plugin : PlayerPlugin ) : void ;
894+ use ( plugin : typeof PlayerPluginRecord ) : void ;
1012895 /**
1013896 *
1014897 * @param {Object } type 矫正类型 参考 src/ezopen/constants.js
@@ -1067,7 +950,7 @@ declare class EZopenPlayer extends EventEmitter {
1067950 */
1068951 disable3DZoom ( ) : number ;
1069952 /**
1070- * @description 获取当前osd, 当获取失败返回 0
953+ * @description 获取当前osd (时间戳) , 当获取失败返回 0
1071954 * @returns {number }
1072955 */
1073956 getOSDTime ( ) : number ;
@@ -1078,6 +961,7 @@ declare class EZopenPlayer extends EventEmitter {
1078961 getFrameInfo ( ) : IFrameInfo ;
1079962 /**
1080963 * @description 设置播放视频区域 (仅视频不是画布)
964+ * @deprecated
1081965 * @param {number } left 视频展示区域 x轴开始位置
1082966 * @param {number } right 视频展示区域 x轴结束位置
1083967 * @param {number } top 视频展示区域 y轴开始位置
@@ -1097,7 +981,7 @@ declare class EZopenPlayer extends EventEmitter {
1097981 *
1098982 * @returns
1099983 */
1100- getOptions ( ) : EZopenPlayerOptions ;
984+ getOptions ( ) : EZopenPlayerOptions | undefined ;
1101985 /**
1102986 * @description 切换调试日志等级
1103987 * @param {LoggerOptions } loggerOptions 日志等级
@@ -1148,6 +1032,15 @@ declare class EZopenPlayer extends EventEmitter {
11481032 */
11491033 setStreamInfoCallBackType ( type : 0 | 1 , cb ?: StreamInfoCallBackFn ) : void ;
11501034 _addEventListener ( ) : void ;
1035+ /**
1036+ * 是否是 hls 直播, 优先使用用户传的值, 如果你没有传值(boolean),则根据 m3u8 的解析结果进行判断
1037+ * @returns {boolean }
1038+ */
1039+ get isLive ( ) : boolean ;
1040+ /**
1041+ * 片段列表
1042+ */
1043+ get segments ( ) : any ;
11511044}
11521045
11531046declare class StreamClient {
@@ -1203,6 +1096,7 @@ declare class StreamClient {
12031096 * @description 客户端销毁
12041097 */
12051098 destroy ( ) : void ;
1099+ advance ( ) : any ;
12061100}
12071101
12081102declare class JSPlugin {
@@ -1219,11 +1113,11 @@ declare class JSPlugin {
12191113 g_port : number ;
12201114 get bPlay ( ) : boolean ;
12211115 get iRate ( ) : number ;
1222- set playURL ( arg : string ) ;
1116+ set playURL ( url : string ) ;
12231117 get playURL ( ) : string ;
1224- set FECSplitIds ( arg : string | undefined ) ;
1118+ set FECSplitIds ( ids : string | undefined ) ;
12251119 get FECSplitIds ( ) : string | undefined ;
1226- set correctType ( arg : any ) ;
1120+ set correctType ( type : any ) ;
12271121 get correctType ( ) : any ;
12281122 _initEventCallback ( ) : void ;
12291123 JSPlayM4_SetDecodeEngine ( useHard : any ) : void ;
0 commit comments