@ezuikit/player-theme 3.1.5-beta.1 → 3.1.5-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/constant.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
- * @ezuikit/player-theme v3.1.5-beta.1
3
- * Copyright (c) 2026-09-03 20:27:16 Ezviz-OpenBiz
2
+ * @ezuikit/player-theme v3.1.5-beta.3
3
+ * Copyright (c) 2026-09-04 06:40:24 Ezviz-OpenBiz
4
4
  * Released under the MIT License.
5
5
  */
6
6
  /**
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
- * @ezuikit/player-theme v3.1.5-beta.1
3
- * Copyright (c) 2026-09-03 20:27:16 Ezviz-OpenBiz
2
+ * @ezuikit/player-theme v3.1.5-beta.3
3
+ * Copyright (c) 2026-09-04 06:40:24 Ezviz-OpenBiz
4
4
  * Released under the MIT License.
5
5
  */
6
6
  'use strict';
@@ -2841,6 +2841,8 @@ var zh = {
2841
2841
  GET_SPEED: '获取当前播放速率',
2842
2842
  MAX_SPEED_LIMIT: '播放速度最大为4倍速度',
2843
2843
  MIN_SPEED_LIMIT: '播放速度最小为0.5倍速度',
2844
+ SPEED_SWITCH_ERRROR: '切换播放速度失败',
2845
+ SPEED_SWITCH_NOT_SUPPORT: '切换倍速({{rate}})不支持',
2844
2846
  SEEK_CANNOT_CROSS_DAYS: 'seek时间不能跨日期',
2845
2847
  SEEK_TIMEFORMAT_ERROR: 'seek时间格式错误',
2846
2848
  PAUSE: '暂停',
@@ -3121,6 +3123,8 @@ var en = {
3121
3123
  GET_SPEED: 'Get the current playback rate',
3122
3124
  MAX_SPEED_LIMIT: 'The maximum playback speed is 4 times the speed',
3123
3125
  MIN_SPEED_LIMIT: 'The minimum playback speed is 0.5 times the speed',
3126
+ SPEED_SWITCH_ERRROR: 'Failed to switch playback speed',
3127
+ SPEED_SWITCH_NOT_SUPPORT: 'Switching speed({{rate}}) is not supported',
3124
3128
  SEEK_CANNOT_CROSS_DAYS: 'The seek time cannot cross dates',
3125
3129
  SEEK_TIMEFORMAT_ERROR: 'The seek time format is wrong',
3126
3130
  PAUSE: 'Pause',
@@ -3262,6 +3266,12 @@ var en = {
3262
3266
  part: 'left',
3263
3267
  isrender: 1
3264
3268
  },
3269
+ {
3270
+ iconId: 'capturePicture',
3271
+ part: 'left',
3272
+ defaultActive: 0,
3273
+ isrender: 1
3274
+ },
3265
3275
  {
3266
3276
  iconId: 'volume',
3267
3277
  part: 'left',
@@ -3275,6 +3285,72 @@ var en = {
3275
3285
  defaultActive: 0,
3276
3286
  isrender: 1
3277
3287
  },
3288
+ {
3289
+ // flv 录制 2.1.2 新增
3290
+ iconId: 'zoom',
3291
+ part: 'left',
3292
+ defaultActive: 0,
3293
+ isrender: 1
3294
+ },
3295
+ {
3296
+ iconId: 'fullscreen',
3297
+ part: 'right',
3298
+ defaultActive: 0,
3299
+ isrender: 1
3300
+ },
3301
+ {
3302
+ iconId: 'globalFullscreen',
3303
+ part: 'right',
3304
+ defaultActive: 0,
3305
+ isrender: 1
3306
+ }
3307
+ ]
3308
+ }
3309
+ };
3310
+
3311
+ /**
3312
+ * flv 预览
3313
+ */ var RecTemplate = {
3314
+ autoFocus: 3,
3315
+ // poster:
3316
+ // "https://img2.baidu.com/it/u=3209353042,356122753&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500",
3317
+ footer: {
3318
+ btnList: [
3319
+ {
3320
+ iconId: 'play',
3321
+ part: 'left',
3322
+ isrender: 1
3323
+ },
3324
+ {
3325
+ iconId: 'capturePicture',
3326
+ part: 'left',
3327
+ defaultActive: 0,
3328
+ isrender: 1
3329
+ },
3330
+ {
3331
+ iconId: 'volume',
3332
+ part: 'left',
3333
+ defaultActive: 0,
3334
+ isrender: 1
3335
+ },
3336
+ {
3337
+ iconId: 'recordvideo',
3338
+ part: 'left',
3339
+ defaultActive: 0,
3340
+ isrender: 1
3341
+ },
3342
+ {
3343
+ iconId: 'zoom',
3344
+ part: 'left',
3345
+ defaultActive: 0,
3346
+ isrender: 1
3347
+ },
3348
+ {
3349
+ iconId: 'speed',
3350
+ part: 'right',
3351
+ defaultActive: 0,
3352
+ isrender: 1
3353
+ },
3278
3354
  {
3279
3355
  iconId: 'fullscreen',
3280
3356
  part: 'right',
@@ -10327,6 +10403,7 @@ var THEME_DEFAULT_OPTIONS = {
10327
10403
  env: {
10328
10404
  domain: 'https://open.ys7.com'
10329
10405
  },
10406
+ isEzviz: true,
10330
10407
  /** 移动端竖屏, 全屏情况下不展示扩张,放置在 footer 中 */ mobileExtendOptions: {
10331
10408
  controls: MOBILE_EXTENDS
10332
10409
  }
@@ -10468,6 +10545,7 @@ var THEME_DEFAULT_OPTIONS = {
10468
10545
  var themeData = (_this_options = _this.options) == null ? void 0 : _this_options.themeData; // IThemeData | null | undefined
10469
10546
  var template = (_this_options1 = _this.options) == null ? void 0 : _this_options1.template; // ThemeTemplateType | string | undefined
10470
10547
  var initialThemeData;
10548
+ // hls ezhls flv mp4 不支持 template
10471
10549
  if (options.type === 'hls' || options.type === 'ezhls') {
10472
10550
  var _options_url;
10473
10551
  // hls / ezhls:@3.1.1 起支持自定义 themeData,但不支持标准提供的模板;未传时回退 hlsLiveTemplate
@@ -10477,8 +10555,9 @@ var THEME_DEFAULT_OPTIONS = {
10477
10555
  'flv',
10478
10556
  'mp4'
10479
10557
  ].includes(options.type)) {
10558
+ var _options_url1;
10480
10559
  // flv / mp4:支持自定义 themeData,未传时回退到标准直播模板 LiveTemplate(2026-01-19 起支持自定义)
10481
- initialThemeData = themeData !== undefined ? themeData : LiveTemplate;
10560
+ initialThemeData = themeData !== undefined ? themeData : ((_options_url1 = options.url) == null ? void 0 : _options_url1.includes('/openpb/')) ? RecTemplate : LiveTemplate;
10482
10561
  } else {
10483
10562
  var _ref6;
10484
10563
  // 其余类型(如 ezopen 私有流):template 优先级高于 themeData,二者都未设置时为 null
@@ -11749,6 +11828,7 @@ var THEME_DEFAULT_OPTIONS = {
11749
11828
  * 判断播放地址是萤石的播放地址
11750
11829
  * @since 3.1.2
11751
11830
  */ function get() {
11831
+ if (this.options.isEzviz) return true;
11752
11832
  try {
11753
11833
  var _this__url_split, _this__url_split1, _path_split;
11754
11834
  var path = (_this__url_split = this._url.split('?')) == null ? void 0 : _this__url_split[0];
@@ -11761,7 +11841,8 @@ var THEME_DEFAULT_OPTIONS = {
11761
11841
  // https://host:2001/live?dev=D08197169&chn=1&ss=token&stream=1
11762
11842
  if (// 私有流地址
11763
11843
  /^ezopen:\/\//.test(path) || // 标准流地址
11764
- path.includes('/openlive/') || path.includes('/openpb/') && /[a-zA-Z0-9:]+_\d+_\d+/.test(lastPath) || // webtransport 取流
11844
+ // 海外回放 https://test-ali-live.ys7.com/400e03b1738a484685f1bc2359fa141c_live/439ee62f0749a11f24595f35137b50af-BA0844510_1_1.flv?auth_key=1804485786-0-0-043eb3c148737c0f007a63e3e07243e6&begin=20250317190802&end=20250317231056&rec=local&v=1&vc=3
11845
+ (path.includes('/openlive/') || path.includes('/openpb/') || queryStr.includes('v=1') && (queryStr.includes('rec=local') || queryStr.includes('rec=cloud'))) && /[a-zA-Z0-9:]+_\d+_\d+/.test(lastPath) || // webtransport 取流
11765
11846
  utilsTools.isHttp(this._url) && queryStr && /dev=[a-zA-Z0-9:]+/.test(queryStr) && /chn=\d+/.test(queryStr) && /stream=\d+/.test(queryStr) && queryStr.includes('ssn=')) {
11766
11847
  return true;
11767
11848
  }
@@ -11780,7 +11861,7 @@ var THEME_DEFAULT_OPTIONS = {
11780
11861
  zh: zh,
11781
11862
  en: en
11782
11863
  };
11783
- /** 版本号 @since 0.0.1 */ Theme.THEME_VERSION = '3.1.5-beta.1';
11864
+ /** 版本号 @since 0.0.1 */ Theme.THEME_VERSION = '3.1.5-beta.3';
11784
11865
 
11785
11866
  exports.Control = Control;
11786
11867
  exports.EVENTS = EVENTS;
package/dist/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
- * @ezuikit/player-theme v3.1.5-beta.1
3
- * Copyright (c) 2026-09-03 20:27:16 Ezviz-OpenBiz
2
+ * @ezuikit/player-theme v3.1.5-beta.3
3
+ * Copyright (c) 2026-09-04 06:40:24 Ezviz-OpenBiz
4
4
  * Released under the MIT License.
5
5
  */
6
6
  import EventEmitter from 'eventemitter3';
@@ -2839,6 +2839,8 @@ var zh = {
2839
2839
  GET_SPEED: '获取当前播放速率',
2840
2840
  MAX_SPEED_LIMIT: '播放速度最大为4倍速度',
2841
2841
  MIN_SPEED_LIMIT: '播放速度最小为0.5倍速度',
2842
+ SPEED_SWITCH_ERRROR: '切换播放速度失败',
2843
+ SPEED_SWITCH_NOT_SUPPORT: '切换倍速({{rate}})不支持',
2842
2844
  SEEK_CANNOT_CROSS_DAYS: 'seek时间不能跨日期',
2843
2845
  SEEK_TIMEFORMAT_ERROR: 'seek时间格式错误',
2844
2846
  PAUSE: '暂停',
@@ -3119,6 +3121,8 @@ var en = {
3119
3121
  GET_SPEED: 'Get the current playback rate',
3120
3122
  MAX_SPEED_LIMIT: 'The maximum playback speed is 4 times the speed',
3121
3123
  MIN_SPEED_LIMIT: 'The minimum playback speed is 0.5 times the speed',
3124
+ SPEED_SWITCH_ERRROR: 'Failed to switch playback speed',
3125
+ SPEED_SWITCH_NOT_SUPPORT: 'Switching speed({{rate}}) is not supported',
3122
3126
  SEEK_CANNOT_CROSS_DAYS: 'The seek time cannot cross dates',
3123
3127
  SEEK_TIMEFORMAT_ERROR: 'The seek time format is wrong',
3124
3128
  PAUSE: 'Pause',
@@ -3260,6 +3264,12 @@ var en = {
3260
3264
  part: 'left',
3261
3265
  isrender: 1
3262
3266
  },
3267
+ {
3268
+ iconId: 'capturePicture',
3269
+ part: 'left',
3270
+ defaultActive: 0,
3271
+ isrender: 1
3272
+ },
3263
3273
  {
3264
3274
  iconId: 'volume',
3265
3275
  part: 'left',
@@ -3273,6 +3283,72 @@ var en = {
3273
3283
  defaultActive: 0,
3274
3284
  isrender: 1
3275
3285
  },
3286
+ {
3287
+ // flv 录制 2.1.2 新增
3288
+ iconId: 'zoom',
3289
+ part: 'left',
3290
+ defaultActive: 0,
3291
+ isrender: 1
3292
+ },
3293
+ {
3294
+ iconId: 'fullscreen',
3295
+ part: 'right',
3296
+ defaultActive: 0,
3297
+ isrender: 1
3298
+ },
3299
+ {
3300
+ iconId: 'globalFullscreen',
3301
+ part: 'right',
3302
+ defaultActive: 0,
3303
+ isrender: 1
3304
+ }
3305
+ ]
3306
+ }
3307
+ };
3308
+
3309
+ /**
3310
+ * flv 预览
3311
+ */ var RecTemplate = {
3312
+ autoFocus: 3,
3313
+ // poster:
3314
+ // "https://img2.baidu.com/it/u=3209353042,356122753&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500",
3315
+ footer: {
3316
+ btnList: [
3317
+ {
3318
+ iconId: 'play',
3319
+ part: 'left',
3320
+ isrender: 1
3321
+ },
3322
+ {
3323
+ iconId: 'capturePicture',
3324
+ part: 'left',
3325
+ defaultActive: 0,
3326
+ isrender: 1
3327
+ },
3328
+ {
3329
+ iconId: 'volume',
3330
+ part: 'left',
3331
+ defaultActive: 0,
3332
+ isrender: 1
3333
+ },
3334
+ {
3335
+ iconId: 'recordvideo',
3336
+ part: 'left',
3337
+ defaultActive: 0,
3338
+ isrender: 1
3339
+ },
3340
+ {
3341
+ iconId: 'zoom',
3342
+ part: 'left',
3343
+ defaultActive: 0,
3344
+ isrender: 1
3345
+ },
3346
+ {
3347
+ iconId: 'speed',
3348
+ part: 'right',
3349
+ defaultActive: 0,
3350
+ isrender: 1
3351
+ },
3276
3352
  {
3277
3353
  iconId: 'fullscreen',
3278
3354
  part: 'right',
@@ -10325,6 +10401,7 @@ var THEME_DEFAULT_OPTIONS = {
10325
10401
  env: {
10326
10402
  domain: 'https://open.ys7.com'
10327
10403
  },
10404
+ isEzviz: true,
10328
10405
  /** 移动端竖屏, 全屏情况下不展示扩张,放置在 footer 中 */ mobileExtendOptions: {
10329
10406
  controls: MOBILE_EXTENDS
10330
10407
  }
@@ -10466,6 +10543,7 @@ var THEME_DEFAULT_OPTIONS = {
10466
10543
  var themeData = (_this_options = _this.options) == null ? void 0 : _this_options.themeData; // IThemeData | null | undefined
10467
10544
  var template = (_this_options1 = _this.options) == null ? void 0 : _this_options1.template; // ThemeTemplateType | string | undefined
10468
10545
  var initialThemeData;
10546
+ // hls ezhls flv mp4 不支持 template
10469
10547
  if (options.type === 'hls' || options.type === 'ezhls') {
10470
10548
  var _options_url;
10471
10549
  // hls / ezhls:@3.1.1 起支持自定义 themeData,但不支持标准提供的模板;未传时回退 hlsLiveTemplate
@@ -10475,8 +10553,9 @@ var THEME_DEFAULT_OPTIONS = {
10475
10553
  'flv',
10476
10554
  'mp4'
10477
10555
  ].includes(options.type)) {
10556
+ var _options_url1;
10478
10557
  // flv / mp4:支持自定义 themeData,未传时回退到标准直播模板 LiveTemplate(2026-01-19 起支持自定义)
10479
- initialThemeData = themeData !== undefined ? themeData : LiveTemplate;
10558
+ initialThemeData = themeData !== undefined ? themeData : ((_options_url1 = options.url) == null ? void 0 : _options_url1.includes('/openpb/')) ? RecTemplate : LiveTemplate;
10480
10559
  } else {
10481
10560
  var _ref6;
10482
10561
  // 其余类型(如 ezopen 私有流):template 优先级高于 themeData,二者都未设置时为 null
@@ -11747,6 +11826,7 @@ var THEME_DEFAULT_OPTIONS = {
11747
11826
  * 判断播放地址是萤石的播放地址
11748
11827
  * @since 3.1.2
11749
11828
  */ function get() {
11829
+ if (this.options.isEzviz) return true;
11750
11830
  try {
11751
11831
  var _this__url_split, _this__url_split1, _path_split;
11752
11832
  var path = (_this__url_split = this._url.split('?')) == null ? void 0 : _this__url_split[0];
@@ -11759,7 +11839,8 @@ var THEME_DEFAULT_OPTIONS = {
11759
11839
  // https://host:2001/live?dev=D08197169&chn=1&ss=token&stream=1
11760
11840
  if (// 私有流地址
11761
11841
  /^ezopen:\/\//.test(path) || // 标准流地址
11762
- path.includes('/openlive/') || path.includes('/openpb/') && /[a-zA-Z0-9:]+_\d+_\d+/.test(lastPath) || // webtransport 取流
11842
+ // 海外回放 https://test-ali-live.ys7.com/400e03b1738a484685f1bc2359fa141c_live/439ee62f0749a11f24595f35137b50af-BA0844510_1_1.flv?auth_key=1804485786-0-0-043eb3c148737c0f007a63e3e07243e6&begin=20250317190802&end=20250317231056&rec=local&v=1&vc=3
11843
+ (path.includes('/openlive/') || path.includes('/openpb/') || queryStr.includes('v=1') && (queryStr.includes('rec=local') || queryStr.includes('rec=cloud'))) && /[a-zA-Z0-9:]+_\d+_\d+/.test(lastPath) || // webtransport 取流
11763
11844
  isHttp(this._url) && queryStr && /dev=[a-zA-Z0-9:]+/.test(queryStr) && /chn=\d+/.test(queryStr) && /stream=\d+/.test(queryStr) && queryStr.includes('ssn=')) {
11764
11845
  return true;
11765
11846
  }
@@ -11778,6 +11859,6 @@ var THEME_DEFAULT_OPTIONS = {
11778
11859
  zh: zh,
11779
11860
  en: en
11780
11861
  };
11781
- /** 版本号 @since 0.0.1 */ Theme.THEME_VERSION = '3.1.5-beta.1';
11862
+ /** 版本号 @since 0.0.1 */ Theme.THEME_VERSION = '3.1.5-beta.3';
11782
11863
 
11783
11864
  export { Control, EVENTS, Fullscreen, Loading, Message, Play, Poster, Rec, Theme, Utils, Volume };
package/dist/index.umd.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
- * @ezuikit/player-theme v3.1.5-beta.1
3
- * Copyright (c) 2026-09-03 20:27:16 Ezviz-OpenBiz
2
+ * @ezuikit/player-theme v3.1.5-beta.3
3
+ * Copyright (c) 2026-09-04 06:40:24 Ezviz-OpenBiz
4
4
  * Released under the MIT License.
5
5
  */
6
6
  (function (global, factory) {
@@ -4328,6 +4328,8 @@
4328
4328
  GET_SPEED: '获取当前播放速率',
4329
4329
  MAX_SPEED_LIMIT: '播放速度最大为4倍速度',
4330
4330
  MIN_SPEED_LIMIT: '播放速度最小为0.5倍速度',
4331
+ SPEED_SWITCH_ERRROR: '切换播放速度失败',
4332
+ SPEED_SWITCH_NOT_SUPPORT: '切换倍速({{rate}})不支持',
4331
4333
  SEEK_CANNOT_CROSS_DAYS: 'seek时间不能跨日期',
4332
4334
  SEEK_TIMEFORMAT_ERROR: 'seek时间格式错误',
4333
4335
  PAUSE: '暂停',
@@ -4608,6 +4610,8 @@
4608
4610
  GET_SPEED: 'Get the current playback rate',
4609
4611
  MAX_SPEED_LIMIT: 'The maximum playback speed is 4 times the speed',
4610
4612
  MIN_SPEED_LIMIT: 'The minimum playback speed is 0.5 times the speed',
4613
+ SPEED_SWITCH_ERRROR: 'Failed to switch playback speed',
4614
+ SPEED_SWITCH_NOT_SUPPORT: 'Switching speed({{rate}}) is not supported',
4611
4615
  SEEK_CANNOT_CROSS_DAYS: 'The seek time cannot cross dates',
4612
4616
  SEEK_TIMEFORMAT_ERROR: 'The seek time format is wrong',
4613
4617
  PAUSE: 'Pause',
@@ -4749,6 +4753,12 @@
4749
4753
  part: 'left',
4750
4754
  isrender: 1
4751
4755
  },
4756
+ {
4757
+ iconId: 'capturePicture',
4758
+ part: 'left',
4759
+ defaultActive: 0,
4760
+ isrender: 1
4761
+ },
4752
4762
  {
4753
4763
  iconId: 'volume',
4754
4764
  part: 'left',
@@ -4762,6 +4772,72 @@
4762
4772
  defaultActive: 0,
4763
4773
  isrender: 1
4764
4774
  },
4775
+ {
4776
+ // flv 录制 2.1.2 新增
4777
+ iconId: 'zoom',
4778
+ part: 'left',
4779
+ defaultActive: 0,
4780
+ isrender: 1
4781
+ },
4782
+ {
4783
+ iconId: 'fullscreen',
4784
+ part: 'right',
4785
+ defaultActive: 0,
4786
+ isrender: 1
4787
+ },
4788
+ {
4789
+ iconId: 'globalFullscreen',
4790
+ part: 'right',
4791
+ defaultActive: 0,
4792
+ isrender: 1
4793
+ }
4794
+ ]
4795
+ }
4796
+ };
4797
+
4798
+ /**
4799
+ * flv 预览
4800
+ */ var RecTemplate = {
4801
+ autoFocus: 3,
4802
+ // poster:
4803
+ // "https://img2.baidu.com/it/u=3209353042,356122753&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500",
4804
+ footer: {
4805
+ btnList: [
4806
+ {
4807
+ iconId: 'play',
4808
+ part: 'left',
4809
+ isrender: 1
4810
+ },
4811
+ {
4812
+ iconId: 'capturePicture',
4813
+ part: 'left',
4814
+ defaultActive: 0,
4815
+ isrender: 1
4816
+ },
4817
+ {
4818
+ iconId: 'volume',
4819
+ part: 'left',
4820
+ defaultActive: 0,
4821
+ isrender: 1
4822
+ },
4823
+ {
4824
+ iconId: 'recordvideo',
4825
+ part: 'left',
4826
+ defaultActive: 0,
4827
+ isrender: 1
4828
+ },
4829
+ {
4830
+ iconId: 'zoom',
4831
+ part: 'left',
4832
+ defaultActive: 0,
4833
+ isrender: 1
4834
+ },
4835
+ {
4836
+ iconId: 'speed',
4837
+ part: 'right',
4838
+ defaultActive: 0,
4839
+ isrender: 1
4840
+ },
4765
4841
  {
4766
4842
  iconId: 'fullscreen',
4767
4843
  part: 'right',
@@ -12326,6 +12402,7 @@
12326
12402
  env: {
12327
12403
  domain: 'https://open.ys7.com'
12328
12404
  },
12405
+ isEzviz: true,
12329
12406
  /** 移动端竖屏, 全屏情况下不展示扩张,放置在 footer 中 */ mobileExtendOptions: {
12330
12407
  controls: MOBILE_EXTENDS
12331
12408
  }
@@ -12467,6 +12544,7 @@
12467
12544
  var themeData = (_this_options = _this.options) == null ? void 0 : _this_options.themeData; // IThemeData | null | undefined
12468
12545
  var template = (_this_options1 = _this.options) == null ? void 0 : _this_options1.template; // ThemeTemplateType | string | undefined
12469
12546
  var initialThemeData;
12547
+ // hls ezhls flv mp4 不支持 template
12470
12548
  if (options.type === 'hls' || options.type === 'ezhls') {
12471
12549
  var _options_url;
12472
12550
  // hls / ezhls:@3.1.1 起支持自定义 themeData,但不支持标准提供的模板;未传时回退 hlsLiveTemplate
@@ -12476,8 +12554,9 @@
12476
12554
  'flv',
12477
12555
  'mp4'
12478
12556
  ].includes(options.type)) {
12557
+ var _options_url1;
12479
12558
  // flv / mp4:支持自定义 themeData,未传时回退到标准直播模板 LiveTemplate(2026-01-19 起支持自定义)
12480
- initialThemeData = themeData !== undefined ? themeData : LiveTemplate;
12559
+ initialThemeData = themeData !== undefined ? themeData : ((_options_url1 = options.url) == null ? void 0 : _options_url1.includes('/openpb/')) ? RecTemplate : LiveTemplate;
12481
12560
  } else {
12482
12561
  var _ref6;
12483
12562
  // 其余类型(如 ezopen 私有流):template 优先级高于 themeData,二者都未设置时为 null
@@ -13748,6 +13827,7 @@
13748
13827
  * 判断播放地址是萤石的播放地址
13749
13828
  * @since 3.1.2
13750
13829
  */ function get() {
13830
+ if (this.options.isEzviz) return true;
13751
13831
  try {
13752
13832
  var _this__url_split, _this__url_split1, _path_split;
13753
13833
  var path = (_this__url_split = this._url.split('?')) == null ? void 0 : _this__url_split[0];
@@ -13760,7 +13840,8 @@
13760
13840
  // https://host:2001/live?dev=D08197169&chn=1&ss=token&stream=1
13761
13841
  if (// 私有流地址
13762
13842
  /^ezopen:\/\//.test(path) || // 标准流地址
13763
- path.includes('/openlive/') || path.includes('/openpb/') && /[a-zA-Z0-9:]+_\d+_\d+/.test(lastPath) || // webtransport 取流
13843
+ // 海外回放 https://test-ali-live.ys7.com/400e03b1738a484685f1bc2359fa141c_live/439ee62f0749a11f24595f35137b50af-BA0844510_1_1.flv?auth_key=1804485786-0-0-043eb3c148737c0f007a63e3e07243e6&begin=20250317190802&end=20250317231056&rec=local&v=1&vc=3
13844
+ (path.includes('/openlive/') || path.includes('/openpb/') || queryStr.includes('v=1') && (queryStr.includes('rec=local') || queryStr.includes('rec=cloud'))) && /[a-zA-Z0-9:]+_\d+_\d+/.test(lastPath) || // webtransport 取流
13764
13845
  distExports$3.isHttp(this._url) && queryStr && /dev=[a-zA-Z0-9:]+/.test(queryStr) && /chn=\d+/.test(queryStr) && /stream=\d+/.test(queryStr) && queryStr.includes('ssn=')) {
13765
13846
  return true;
13766
13847
  }
@@ -13779,7 +13860,7 @@
13779
13860
  zh: zh,
13780
13861
  en: en
13781
13862
  };
13782
- /** 版本号 @since 0.0.1 */ Theme.THEME_VERSION = '3.1.5-beta.1';
13863
+ /** 版本号 @since 0.0.1 */ Theme.THEME_VERSION = '3.1.5-beta.3';
13783
13864
 
13784
13865
  // 不要动这里的代码, 这个出口是为了编译成 umd 规范的文件
13785
13866
 
package/dist/style.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
- * @ezuikit/player-theme v3.1.5-beta.1
3
- * Copyright (c) 2026-09-03 20:27:16 Ezviz-OpenBiz
2
+ * @ezuikit/player-theme v3.1.5-beta.3
3
+ * Copyright (c) 2026-09-04 06:40:24 Ezviz-OpenBiz
4
4
  * Released under the MIT License.
5
5
  */
6
6
  require("./style.css");
@@ -1505,14 +1505,14 @@ declare class Theme extends EventEmitter {
1505
1505
  readonly fullscreen: "fullscreen";
1506
1506
  readonly exitFullscreen: "exitFullscreen";
1507
1507
  readonly fullscreenChange: "fullscreenChange";
1508
- readonly resize: "resize";
1508
+ readonly resize: "resize"; /** 所有控件列表, 所有控件名称规则(`${iconId}Control`), 如音量控件 this.controls["volumeControl"] @since 0.0.1 */
1509
1509
  readonly orientationChange: "orientationChange";
1510
1510
  readonly audioCodecUnsupported: "audioCodecUnsupported";
1511
1511
  readonly changeTheme: "changeTheme";
1512
1512
  readonly recTypeChange: "recTypeChange";
1513
1513
  readonly definitionChange: "definitionChange";
1514
1514
  readonly speedChange: "speedChange";
1515
- readonly recordingChange: "recordingChange"; /** 封面控件 @since 0.0.1 @private */
1515
+ readonly recordingChange: "recordingChange";
1516
1516
  readonly talkingChange: "talkingChange";
1517
1517
  readonly talkVolumeChange: "talkVolumeChange";
1518
1518
  readonly broadcastChange: "broadcastChange";
@@ -1524,14 +1524,12 @@ declare class Theme extends EventEmitter {
1524
1524
  readonly setLoggerOptions: "setLoggerOptions";
1525
1525
  readonly records: "records";
1526
1526
  readonly ptzSpeedChange: "ptzSpeedChange";
1527
+ /** 回放底部时间轴 @since 0.0.1 @private */
1527
1528
  readonly setVideoLevelList: "setVideoLevelList";
1528
1529
  readonly currentVideoLevel: "currentVideoLevel";
1529
1530
  readonly currentVideoLevelAuto: "currentVideoLevelAuto";
1530
- readonly setAllDayRecTimes: "setAllDayRecTimes"; /**
1531
- * 移动端扩展容器, 扩展的控件渲染在指定容器以外, 仅只用端适用, 为了可以放置大的控件和方便开发接入
1532
- * @private
1533
- */
1534
- readonly getOSDTime: "getOSDTime";
1531
+ readonly setAllDayRecTimes: "setAllDayRecTimes";
1532
+ readonly getOSDTime: "getOSDTime"; /** @since 0.0.1 @private */
1535
1533
  readonly playbackEnd: "playbackEnd";
1536
1534
  readonly control: {
1537
1535
  readonly play: "Control.play";
@@ -1544,7 +1542,7 @@ declare class Theme extends EventEmitter {
1544
1542
  readonly volumeDestroy: "Control.volumeDestroy";
1545
1543
  readonly controlsBarOpenChange: "Control.controlsBarOpenChange";
1546
1544
  readonly headerMoreShowControlsChange: "Control.headerMoreShowControlsChange";
1547
- readonly headerMorePanelOpenChange: "Control.headerMorePanelOpenChange"; /** 电子放大倍数 @private */
1545
+ readonly headerMorePanelOpenChange: "Control.headerMorePanelOpenChange";
1548
1546
  readonly footerMoreShowControlsChange: "Control.footerMoreShowControlsChange";
1549
1547
  readonly footerMorePanelOpenChange: "Control.footerMorePanelOpenChange";
1550
1548
  readonly deviceDestroy: "Control.deviceDestroy";
@@ -1752,7 +1750,7 @@ declare class Theme extends EventEmitter {
1752
1750
  DEVICE_ENCRYPTED: string;
1753
1751
  NO_RECORD: string;
1754
1752
  PLAY_FAILED: string;
1755
- PLAY_SUCCESS: string; /** 语言包 @since 0.0.1 */
1753
+ PLAY_SUCCESS: string;
1756
1754
  STOP_SUCCESS: string;
1757
1755
  CHANGE_PLAYURL_SUCCESS: string;
1758
1756
  CHANGE_PLAYURL_FAILED: string;
@@ -1766,19 +1764,20 @@ declare class Theme extends EventEmitter {
1766
1764
  GET_SPEED: string;
1767
1765
  MAX_SPEED_LIMIT: string;
1768
1766
  MIN_SPEED_LIMIT: string;
1767
+ SPEED_SWITCH_ERRROR: string;
1768
+ SPEED_SWITCH_NOT_SUPPORT: string;
1769
1769
  SEEK_CANNOT_CROSS_DAYS: string;
1770
- /** 所有控件列表, 所有控件名称规则(`${iconId}Control`), 如音量控件 this.controls["volumeControl"] @since 0.0.1 */
1771
1770
  SEEK_TIMEFORMAT_ERROR: string;
1772
1771
  PAUSE: string;
1773
1772
  PAUSE_FAILED: string;
1774
1773
  RESUME: string;
1775
1774
  RESUME_FAILED: string;
1776
1775
  CALL_END: string;
1777
- USER_DO_NOT_OWN_DEVICE: string; /** 加载控件 @since 0.0.1 @private */
1776
+ USER_DO_NOT_OWN_DEVICE: string;
1778
1777
  NO_CLOUD_RECORD: string;
1779
1778
  CHANGE_VIDEO_LEVEL: string;
1780
1779
  CHANGE_VIDEO_LEVEL_FAIL: string;
1781
- GET_VIDEO_LEVEL_LIST: string;
1780
+ GET_VIDEO_LEVEL_LIST: string; /** 消息提示控件 @since 0.0.1 @private */
1782
1781
  PLEASE_INPUT_RIGHT_VIDEO_LEVEL: string;
1783
1782
  VIDEO_LEVEL_NOT_SUPPORT: string;
1784
1783
  VIDEO_LEVEL_AUTO: string;
@@ -1790,11 +1789,6 @@ declare class Theme extends EventEmitter {
1790
1789
  VIDEO_LEVEL_3K: string;
1791
1790
  VIDEO_LEVEL_4k: string;
1792
1791
  RESET_THEME: string;
1793
- /**
1794
- * 更多控件(header more)
1795
- * @since 0.0.1
1796
- * @private
1797
- */
1798
1792
  BTN_PLAY: string;
1799
1793
  BTN_PAUSE: string;
1800
1794
  BTN_VOLUME: string;
@@ -1807,13 +1801,16 @@ declare class Theme extends EventEmitter {
1807
1801
  BTN_LIVE: string;
1808
1802
  BTN_REC_DROPDOWN: string;
1809
1803
  BTN_ALARM_MESSAGE: string;
1810
- REC_DROPDOWN_CLOUD_REC: string; /** 低部控件 @since 0.0.1 @private */
1804
+ REC_DROPDOWN_CLOUD_REC: string;
1811
1805
  REC_DROPDOWN_CLOUD_RECORD: string;
1812
1806
  REC_DROPDOWN_LOCAL_REC: string;
1813
1807
  BTN_ZOOM: string;
1814
1808
  BTN_3D_ZOOM: string;
1815
1809
  BTN_PTZ: string;
1816
- BTN_GLOBAL_FULLSCREEN: string;
1810
+ BTN_GLOBAL_FULLSCREEN: string; /**
1811
+ * 移动端扩展容器, 扩展的控件渲染在指定容器以外, 仅只用端适用, 为了可以放置大的控件和方便开发接入
1812
+ * @private
1813
+ */
1817
1814
  BTN_EXIT_GLOBAL_FULLSCREEN: string;
1818
1815
  BTN_FULLSCREEN: string;
1819
1816
  BTN_EXIR_FULLSCREEN: string;
@@ -1836,10 +1833,11 @@ declare class Theme extends EventEmitter {
1836
1833
  RECORD_TIPS: string;
1837
1834
  RECORDS: string;
1838
1835
  OPEN_SOUND: string;
1839
- CLOSE_SOUND: string; /** 容器的宽 */
1840
- SOUND_OPENED: string;
1836
+ CLOSE_SOUND: string;
1837
+ SOUND_OPENED: string; /** 容器的宽 */
1841
1838
  ZOOM: string;
1842
1839
  START_ZOOM: string;
1840
+ /** 容器的高 */
1843
1841
  CLOSE_ZOOM: string;
1844
1842
  ZOOM_ADD: string;
1845
1843
  ZOOM_SUB: string;
@@ -1864,37 +1862,28 @@ declare class Theme extends EventEmitter {
1864
1862
  WEB_FULLSCREEN: string;
1865
1863
  WEB_FULLSCREEN_EXIT: string;
1866
1864
  DESTROY: string;
1865
+ /** 回放片段列表 */
1867
1866
  GET_CAPACITY: string;
1868
1867
  GET_PTZ_STATUS: string;
1869
1868
  GET_PTZ_STATUS_FAILED: string;
1870
1869
  MOBILE_HIDE_PTZ: string;
1871
1870
  OPTION_PTZ_FAILED: string;
1872
1871
  MOBILE_PTZ_TIPS: string;
1873
- PTZ_FAST: string;
1872
+ PTZ_FAST: string; /** 窗口尺寸变化时,设置窗口超出隐藏,防止出现滚动条 */
1874
1873
  PTZ_MID: string;
1875
1874
  PTZ_SLOW: string;
1876
- PTZ_SPEED: string; /**
1877
- // * 记录回放的月份
1878
- // *
1879
- // * key: {序列号}_{通道号}_{rec | cloud | cloudRecord} 比如:BC7799091_1_rec BC7799091_1_cloud BC7799091_1_cloudRecord
1880
- // *
1881
- // * value: 月份列表 比如 ["2025-12-01", "2025-12-02"]
1882
- // * @private
1883
- // */
1875
+ PTZ_SPEED: string;
1876
+ DEVICE_ZOOM: string;
1884
1877
  /**
1885
1878
  * 录像回放的月份列表 @private
1886
1879
  */
1887
- DEVICE_ZOOM: string;
1880
+ DEVICE_FOCUS: string;
1888
1881
  /**
1889
1882
  * 录像回放的月份列表 @private
1890
1883
  */
1891
- DEVICE_FOCUS: string;
1892
1884
  NOT_SUPPORT_DEVICE_ZOOM: string;
1893
1885
  NOT_SUPPORT_FOCUS: string;
1894
1886
  MIRROR: string;
1895
- /**
1896
- * 录像回放的月份列表 @private
1897
- */
1898
1887
  MIRROR_TYPE_ERROR: string;
1899
1888
  CHANGE_FEC_TYPE: string;
1900
1889
  DEVICE_NOT_SUPPORT: string;
@@ -1948,40 +1937,6 @@ declare class Theme extends EventEmitter {
1948
1937
  395506: string;
1949
1938
  395507: string;
1950
1939
  395530: string;
1951
- /**
1952
- * 播放器主题
1953
- * @class Theme
1954
- * @category Theme
1955
- * @remarks
1956
- * 萤石播放器主题,主要用于播放器的 UI 展示和交互,支持 flv, hls, mp4, ezopen 等流类型。
1957
- * 提供了丰富的控件和配置选项,支持多语言和自定义样式。
1958
- *
1959
- * @example
1960
- * ```ts
1961
- * // import css file
1962
- * import "@ezuikit/player-theme/dist/style.js"
1963
- * import Theme from '@ezuikit/player-theme';
1964
- *
1965
- * // class Player extends Theme {}
1966
- *
1967
- * const theme = new Theme({
1968
- * container: () => document.querySelector('.player'),
1969
- * type: 'flv',
1970
- * });
1971
- * ```
1972
- *
1973
- * ```html
1974
- * <!-- html script, static in `@ezuikit/player-theme/dist` -->
1975
- * <link rel="stylesheet" href="./assets/@ezuikit/player-theme/dist/style.css" />
1976
- * <script src="./assets/@ezuikit/player-theme/dist/index.umd.js"></script>
1977
- * <script>
1978
- * const theme = new Theme({
1979
- * container: () => document.querySelector('.player'),
1980
- * type: 'flv',
1981
- * });
1982
- * </script>
1983
- * ```
1984
- */
1985
1940
  395544: string;
1986
1941
  395545: string;
1987
1942
  395546: string;
@@ -2026,7 +1981,7 @@ declare class Theme extends EventEmitter {
2026
1981
  396506: string;
2027
1982
  396508: string;
2028
1983
  396509: string;
2029
- 396510: string;
1984
+ 396510: string; /** 静音 */
2030
1985
  396511: string;
2031
1986
  396512: string;
2032
1987
  396513: string;
@@ -2036,7 +1991,13 @@ declare class Theme extends EventEmitter {
2036
1991
  396517: string;
2037
1992
  396518: string;
2038
1993
  396519: string;
1994
+ /**
1995
+ * 录像回放的月份列表 @private
1996
+ */
2039
1997
  396520: string;
1998
+ /**
1999
+ * 录像回放的月份列表 @private
2000
+ */
2040
2001
  396700: string;
2041
2002
  /**
2042
2003
  * 录像回放的月份列表 @private
@@ -2103,6 +2064,8 @@ declare class Theme extends EventEmitter {
2103
2064
  GET_SPEED: string;
2104
2065
  MAX_SPEED_LIMIT: string;
2105
2066
  MIN_SPEED_LIMIT: string;
2067
+ SPEED_SWITCH_ERRROR: string;
2068
+ SPEED_SWITCH_NOT_SUPPORT: string;
2106
2069
  SEEK_CANNOT_CROSS_DAYS: string;
2107
2070
  SEEK_TIMEFORMAT_ERROR: string;
2108
2071
  PAUSE: string;
@@ -2123,13 +2086,6 @@ declare class Theme extends EventEmitter {
2123
2086
  VIDEO_LEVEL_HEIGH: string;
2124
2087
  VIDEO_LEVEL_SUPER: string;
2125
2088
  VIDEO_LEVEL_EXTREME: string;
2126
- /**
2127
- * 视频信息
2128
- * @version 3.1.2
2129
- * ```ts
2130
- * theme.videoInfo // ThemeVideoInfo
2131
- * ```
2132
- */
2133
2089
  VIDEO_LEVEL_3K: string;
2134
2090
  VIDEO_LEVEL_4k: string;
2135
2091
  RESET_THEME: string;
@@ -2204,20 +2160,15 @@ declare class Theme extends EventEmitter {
2204
2160
  WEB_FULLSCREEN: string;
2205
2161
  WEB_FULLSCREEN_EXIT: string;
2206
2162
  DESTROY: string;
2207
- GET_CAPACITY: string; /**
2208
- * 静音
2209
- * @example
2210
- * ```ts
2211
- * // 事件监听
2212
- * theme.on(Theme.EVENTS.volumechange, (volume: number, muted: boolean) => {})
2213
- * ```
2214
- */
2163
+ GET_CAPACITY: string;
2215
2164
  GET_PTZ_STATUS: string;
2216
2165
  GET_PTZ_STATUS_FAILED: string;
2217
2166
  MOBILE_HIDE_PTZ: string;
2218
2167
  OPTION_PTZ_FAILED: string;
2219
2168
  MOBILE_PTZ_TIPS: string;
2220
- PTZ_FAST: string;
2169
+ PTZ_FAST: string; /**
2170
+ * 是否在缩放中
2171
+ */
2221
2172
  PTZ_MID: string;
2222
2173
  PTZ_SLOW: string;
2223
2174
  PTZ_SPEED: string;
@@ -2919,6 +2870,8 @@ interface ThemeOptions {
2919
2870
  * 9.x 开始弃用 请使用 timeLineOptions: null来关闭时间轴
2920
2871
  */
2921
2872
  disabledTimeLine?: boolean;
2873
+ /** 是萤石的播放地址,默认 true, 仅对标准流很有效 */
2874
+ isEzviz?: boolean;
2922
2875
  [kye: string]: any;
2923
2876
  }
2924
2877
  interface ThemeVideoInfo {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ezuikit/player-theme",
3
- "version": "3.1.5-beta.1",
3
+ "version": "3.1.5-beta.3",
4
4
  "description": "player theme",
5
5
  "title": "theme",
6
6
  "main": "dist/index.cjs",
@@ -36,7 +36,7 @@
36
36
  "dependencies": {
37
37
  "@ezuikit/utils-i18n": "^2.0.1",
38
38
  "@ezuikit/utils-logger": "^2.0.1",
39
- "@ezuikit/utils-tools": "^2.0.6",
39
+ "@ezuikit/utils-tools": "^2.0.7",
40
40
  "@ezuikit/control-date-picker": "2.1.2-beta.1",
41
41
  "@ezuikit/control-time-line": "2.1.0",
42
42
  "@ezuikit/control-ptz": "1.0.0",