@volcengine/veplayer 2.1.0 → 2.2.0-rc.0

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/esm/veplayer.d.ts CHANGED
@@ -3697,7 +3697,16 @@ interface Rtm {
3697
3697
  * @default 1000
3698
3698
  */
3699
3699
  retryDelay?: number;
3700
+ /** {zh}
3701
+ * @brief 是否开启自动降级。
3702
+ * @default true
3703
+ */
3700
3704
  enableFallback?: boolean;
3705
+ /** {zh}
3706
+ * @brief 是否开启自动转码。
3707
+ * @default false
3708
+ */
3709
+ enableRTMAutoTranscode?: boolean;
3701
3710
  }
3702
3711
  /**
3703
3712
  * @list option
@@ -6644,7 +6653,16 @@ declare namespace live {
6644
6653
  * @default 1000
6645
6654
  */
6646
6655
  retryDelay?: number;
6656
+ /** {zh}
6657
+ * @brief 是否开启自动降级。
6658
+ * @default true
6659
+ */
6647
6660
  enableFallback?: boolean;
6661
+ /** {zh}
6662
+ * @brief 是否开启自动转码。
6663
+ * @default false
6664
+ */
6665
+ enableRTMAutoTranscode?: boolean;
6648
6666
  }
6649
6667
  /**
6650
6668
  * @list option
@@ -18380,6 +18380,41 @@ async function isRTMSupportCodec(codec = RTMCodec.H264) {
18380
18380
  return Rtm.isSupportedH264();
18381
18381
  return false;
18382
18382
  }
18383
+ const appendSearchParams = (url, searchParams) => {
18384
+ var _a, _b;
18385
+ const urlObject = getUrlObject(url);
18386
+ if (!url || !urlObject) {
18387
+ return url ?? "";
18388
+ }
18389
+ const withoutProtocol = url.startsWith("//");
18390
+ for (const key in searchParams) {
18391
+ const value = searchParams[key];
18392
+ if (urlObject == null ? void 0 : urlObject.searchParams.has(key)) {
18393
+ (_a = urlObject == null ? void 0 : urlObject.searchParams) == null ? void 0 : _a.set(key, value);
18394
+ } else {
18395
+ (_b = urlObject == null ? void 0 : urlObject.searchParams) == null ? void 0 : _b.append(key, value);
18396
+ }
18397
+ }
18398
+ url = urlObject.toString();
18399
+ if (withoutProtocol) {
18400
+ return url == null ? void 0 : url.replace(location.protocol, "");
18401
+ }
18402
+ return url;
18403
+ };
18404
+ const getUrlObject = (url) => {
18405
+ if (!url) {
18406
+ return;
18407
+ }
18408
+ const withoutProtocol = url.startsWith("//");
18409
+ if (withoutProtocol) {
18410
+ url = location.protocol + url;
18411
+ }
18412
+ try {
18413
+ return new URL(url);
18414
+ } catch (error2) {
18415
+ return;
18416
+ }
18417
+ };
18383
18418
  const rtmStrategy = {
18384
18419
  options: {},
18385
18420
  module: DynamicModule.PluginRtm
@@ -18395,7 +18430,12 @@ const getRtmStrategy = async (options, player) => {
18395
18430
  var _a;
18396
18431
  let backupStrategy;
18397
18432
  const { url } = options;
18398
- const { fallbackUrl, enableFallback = true, ...ret } = options.rtm || {};
18433
+ const {
18434
+ fallbackUrl,
18435
+ enableFallback = true,
18436
+ enableRTMAutoTranscode,
18437
+ ...ret
18438
+ } = options.rtm || {};
18399
18439
  const actualFallbackUrl = !enableFallback ? "" : !fallbackUrl && url ? generateFallbackUrl(url) : fallbackUrl;
18400
18440
  const backupType = actualFallbackUrl && util.getStreamType(actualFallbackUrl);
18401
18441
  if (backupType === "flv" && util.isMseSupported(Codec.H264)) {
@@ -18438,6 +18478,7 @@ const getRtmStrategy = async (options, player) => {
18438
18478
  return {
18439
18479
  options: {
18440
18480
  ...(backupStrategy == null ? void 0 : backupStrategy.options) || {},
18481
+ url: enableRTMAutoTranscode ? appendSearchParams(url, { enableRTMAutoTranscode: "true" }) : void 0,
18441
18482
  _RTMdegrade: void 0,
18442
18483
  rts: {
18443
18484
  retryCount: 0,
@@ -21108,24 +21149,12 @@ const getUserId2 = () => {
21108
21149
  return userId;
21109
21150
  };
21110
21151
  const generateUrlWithSessionId = (url) => {
21111
- var _a, _b;
21112
- if (!url) {
21113
- return "";
21114
- }
21115
- const withoutProtocol = url.startsWith("//");
21116
- if (withoutProtocol) {
21117
- url = location.protocol + url;
21152
+ const urlObject = getUrlObject(url);
21153
+ if (!urlObject) {
21154
+ return url ?? "";
21118
21155
  }
21119
- try {
21120
- const urlObject = new URL(url);
21121
- if (!((_a = urlObject == null ? void 0 : urlObject.searchParams) == null ? void 0 : _a.get("_session_id"))) {
21122
- (_b = urlObject == null ? void 0 : urlObject.searchParams) == null ? void 0 : _b.append("_session_id", generateSessionId());
21123
- }
21124
- url = urlObject.toString();
21125
- } catch (error2) {
21126
- }
21127
- if (withoutProtocol) {
21128
- return url == null ? void 0 : url.replace(location.protocol, "");
21156
+ if (!(urlObject == null ? void 0 : urlObject.searchParams.get("_session_id"))) {
21157
+ return appendSearchParams(url, { _session_id: generateSessionId() });
21129
21158
  }
21130
21159
  return url;
21131
21160
  };
@@ -21226,7 +21255,7 @@ class Logger extends Plugin {
21226
21255
  user_id: this._userId,
21227
21256
  device_id: this._deviceId,
21228
21257
  ext: {
21229
- veplayer_version: "2.1.0",
21258
+ veplayer_version: "2.2.0-rc.0",
21230
21259
  flv_version: "3.0.10-alpha.4",
21231
21260
  hls_version: "3.0.10-alpha.4",
21232
21261
  rts_version: "0.2.0-alpha.5"
@@ -3697,7 +3697,16 @@ interface Rtm {
3697
3697
  * @default 1000
3698
3698
  */
3699
3699
  retryDelay?: number;
3700
+ /** {zh}
3701
+ * @brief 是否开启自动降级。
3702
+ * @default true
3703
+ */
3700
3704
  enableFallback?: boolean;
3705
+ /** {zh}
3706
+ * @brief 是否开启自动转码。
3707
+ * @default false
3708
+ */
3709
+ enableRTMAutoTranscode?: boolean;
3701
3710
  }
3702
3711
  /**
3703
3712
  * @list option
@@ -6644,7 +6653,16 @@ declare namespace live {
6644
6653
  * @default 1000
6645
6654
  */
6646
6655
  retryDelay?: number;
6656
+ /** {zh}
6657
+ * @brief 是否开启自动降级。
6658
+ * @default true
6659
+ */
6647
6660
  enableFallback?: boolean;
6661
+ /** {zh}
6662
+ * @brief 是否开启自动转码。
6663
+ * @default false
6664
+ */
6665
+ enableRTMAutoTranscode?: boolean;
6648
6666
  }
6649
6667
  /**
6650
6668
  * @list option
@@ -18380,6 +18380,41 @@ async function isRTMSupportCodec(codec = RTMCodec.H264) {
18380
18380
  return Rtm.isSupportedH264();
18381
18381
  return false;
18382
18382
  }
18383
+ const appendSearchParams = (url, searchParams) => {
18384
+ var _a, _b;
18385
+ const urlObject = getUrlObject(url);
18386
+ if (!url || !urlObject) {
18387
+ return url ?? "";
18388
+ }
18389
+ const withoutProtocol = url.startsWith("//");
18390
+ for (const key in searchParams) {
18391
+ const value = searchParams[key];
18392
+ if (urlObject == null ? void 0 : urlObject.searchParams.has(key)) {
18393
+ (_a = urlObject == null ? void 0 : urlObject.searchParams) == null ? void 0 : _a.set(key, value);
18394
+ } else {
18395
+ (_b = urlObject == null ? void 0 : urlObject.searchParams) == null ? void 0 : _b.append(key, value);
18396
+ }
18397
+ }
18398
+ url = urlObject.toString();
18399
+ if (withoutProtocol) {
18400
+ return url == null ? void 0 : url.replace(location.protocol, "");
18401
+ }
18402
+ return url;
18403
+ };
18404
+ const getUrlObject = (url) => {
18405
+ if (!url) {
18406
+ return;
18407
+ }
18408
+ const withoutProtocol = url.startsWith("//");
18409
+ if (withoutProtocol) {
18410
+ url = location.protocol + url;
18411
+ }
18412
+ try {
18413
+ return new URL(url);
18414
+ } catch (error2) {
18415
+ return;
18416
+ }
18417
+ };
18383
18418
  const rtmStrategy = {
18384
18419
  options: {},
18385
18420
  module: DynamicModule.PluginRtm
@@ -18395,7 +18430,12 @@ const getRtmStrategy = async (options, player) => {
18395
18430
  var _a;
18396
18431
  let backupStrategy;
18397
18432
  const { url } = options;
18398
- const { fallbackUrl, enableFallback = true, ...ret } = options.rtm || {};
18433
+ const {
18434
+ fallbackUrl,
18435
+ enableFallback = true,
18436
+ enableRTMAutoTranscode,
18437
+ ...ret
18438
+ } = options.rtm || {};
18399
18439
  const actualFallbackUrl = !enableFallback ? "" : !fallbackUrl && url ? generateFallbackUrl(url) : fallbackUrl;
18400
18440
  const backupType = actualFallbackUrl && util.getStreamType(actualFallbackUrl);
18401
18441
  if (backupType === "flv" && util.isMseSupported(Codec.H264)) {
@@ -18438,6 +18478,7 @@ const getRtmStrategy = async (options, player) => {
18438
18478
  return {
18439
18479
  options: {
18440
18480
  ...(backupStrategy == null ? void 0 : backupStrategy.options) || {},
18481
+ url: enableRTMAutoTranscode ? appendSearchParams(url, { enableRTMAutoTranscode: "true" }) : void 0,
18441
18482
  _RTMdegrade: void 0,
18442
18483
  rts: {
18443
18484
  retryCount: 0,
@@ -21108,24 +21149,12 @@ const getUserId2 = () => {
21108
21149
  return userId;
21109
21150
  };
21110
21151
  const generateUrlWithSessionId = (url) => {
21111
- var _a, _b;
21112
- if (!url) {
21113
- return "";
21114
- }
21115
- const withoutProtocol = url.startsWith("//");
21116
- if (withoutProtocol) {
21117
- url = location.protocol + url;
21152
+ const urlObject = getUrlObject(url);
21153
+ if (!urlObject) {
21154
+ return url ?? "";
21118
21155
  }
21119
- try {
21120
- const urlObject = new URL(url);
21121
- if (!((_a = urlObject == null ? void 0 : urlObject.searchParams) == null ? void 0 : _a.get("_session_id"))) {
21122
- (_b = urlObject == null ? void 0 : urlObject.searchParams) == null ? void 0 : _b.append("_session_id", generateSessionId());
21123
- }
21124
- url = urlObject.toString();
21125
- } catch (error2) {
21126
- }
21127
- if (withoutProtocol) {
21128
- return url == null ? void 0 : url.replace(location.protocol, "");
21156
+ if (!(urlObject == null ? void 0 : urlObject.searchParams.get("_session_id"))) {
21157
+ return appendSearchParams(url, { _session_id: generateSessionId() });
21129
21158
  }
21130
21159
  return url;
21131
21160
  };
@@ -21226,7 +21255,7 @@ class Logger extends Plugin {
21226
21255
  user_id: this._userId,
21227
21256
  device_id: this._deviceId,
21228
21257
  ext: {
21229
- veplayer_version: "2.1.0",
21258
+ veplayer_version: "2.2.0-rc.0",
21230
21259
  flv_version: "3.0.10-alpha.4",
21231
21260
  hls_version: "3.0.10-alpha.4",
21232
21261
  rts_version: "0.2.0-alpha.5"