@besovideo/webrtc-player 0.8.78 → 0.8.80

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/README.md CHANGED
@@ -71,6 +71,8 @@ const { instance } = PuPlayer({
71
71
  onConnectedFailed: () => {},
72
72
  // (可选) 连接断开后回调
73
73
  onDisConnected: () => {},
74
+ // (可选) token 失效回调
75
+ onTokenFail: () => void,
74
76
  // (可选) 双击是否全屏
75
77
  fullScreenOnDblclick: true,
76
78
  // (可选) 启用控制器
package/dist/main.es.js CHANGED
@@ -111,7 +111,7 @@ var __async = (__this, __arguments, generator) => {
111
111
  var define_processenv_default;
112
112
  var init_define_processenv = __esm({
113
113
  "<define:processenv>"() {
114
- define_processenv_default = { NODE_ENV: "production", SH_LIB_NAME: "@besovideo/webrtc-player", SH_LIB_VERSION: "0.8.78", PROJECT_NAMESPACE: "bvplayer" };
114
+ define_processenv_default = { NODE_ENV: "production", SH_LIB_NAME: "@besovideo/webrtc-player", SH_LIB_VERSION: "0.8.80", PROJECT_NAMESPACE: "bvplayer" };
115
115
  }
116
116
  });
117
117
 
@@ -4944,6 +4944,8 @@ var CustomError = class extends Error {
4944
4944
  };
4945
4945
  // 错误码
4946
4946
  CustomError.ErrorStatus = {
4947
+ //token 失效
4948
+ TOKEN_FAIL: 9,
4947
4949
  // 打开dialog失败
4948
4950
  OPEN_DIALOG_FAILED: 1001,
4949
4951
  // WEBRTC打开的流为h265
@@ -4973,6 +4975,18 @@ var globalConfigHandler = {
4973
4975
  };
4974
4976
 
4975
4977
  // src/api/dialog.ts
4978
+ var TokenFailError = class extends CustomError {
4979
+ constructor(message) {
4980
+ super(CustomError.ErrorStatus.TOKEN_FAIL, message);
4981
+ }
4982
+ static isTokenFailError(e) {
4983
+ return e instanceof TokenFailError;
4984
+ }
4985
+ toString() {
4986
+ console.error(super.toString());
4987
+ return "token fail";
4988
+ }
4989
+ };
4976
4990
  var OpenDialogError = class extends CustomError {
4977
4991
  constructor(message) {
4978
4992
  super(CustomError.ErrorStatus.OPEN_DIALOG_FAILED, message);
@@ -5006,6 +5020,9 @@ var getDeviceWebrtc = (param, token, signal) => __async(void 0, null, function*
5006
5020
  signal
5007
5021
  );
5008
5022
  logger_default.api("\u8BBE\u5907\u97F3\u89C6\u9891\u6D41 webrtc\u65B9\u5F0F\u6253\u5F00dialog: ", { params, resData });
5023
+ if ((resData == null ? void 0 : resData.code) == 9) {
5024
+ throw new TokenFailError("token fail");
5025
+ }
5009
5026
  if (!resData || resData.code !== 0 || !((_a = resData.data) == null ? void 0 : _a.dialogid))
5010
5027
  throw new OpenDialogError(`open dialog error: ${resData.msg}`);
5011
5028
  const { data: dialog } = resData;
@@ -5036,6 +5053,9 @@ var getDeviceBvrtc = (param, token, signal) => __async(void 0, null, function* (
5036
5053
  signal
5037
5054
  );
5038
5055
  logger_default.api("\u8BBE\u5907\u97F3\u89C6\u9891\u6D41 bvrtc\u65B9\u5F0F\u6253\u5F00dialog: ", { params, resData });
5056
+ if (resData == null ? void 0 : resData.code) {
5057
+ throw new TokenFailError("token fail");
5058
+ }
5039
5059
  if (!resData || resData.code !== 0 || !((_a = resData.data) == null ? void 0 : _a.dialogid))
5040
5060
  throw new OpenDialogError(`\u6253\u5F00\u4F20\u8F93\u901A\u9053\u5931\u8D25: ${resData.msg}`);
5041
5061
  const { data: dialog } = resData;
@@ -9065,6 +9085,12 @@ var connect = (param, onGotStream) => __async(void 0, null, function* () {
9065
9085
  try {
9066
9086
  remoteSdp = yield productRemoteSdp(new RTCSessionDescription(offer));
9067
9087
  } catch (e) {
9088
+ if (e instanceof CustomError) {
9089
+ const err = e;
9090
+ if (err.status == CustomError.ErrorStatus.TOKEN_FAIL) {
9091
+ throw e;
9092
+ }
9093
+ }
9068
9094
  throw t("da-kai-shi-bai");
9069
9095
  }
9070
9096
  logger_default.info("webrtc remoteSDP: ", remoteSdp);
@@ -14874,7 +14900,8 @@ var en_default = {
14874
14900
  "shan-chu": "Delete",
14875
14901
  "tiao-zhuan": "Jump",
14876
14902
  "fa-song": "Send",
14877
- "xian-shi": "Show"
14903
+ "xian-shi": "Show",
14904
+ "token-fail": "Token Fail"
14878
14905
  };
14879
14906
 
14880
14907
  // src/locales/zh.json
@@ -14923,7 +14950,8 @@ var zh_default = {
14923
14950
  "shan-chu": "\u5220\u9664",
14924
14951
  "tiao-zhuan": "\u8DF3\u8F6C",
14925
14952
  "xian-shi": "\u663E\u793A",
14926
- "fa-song": "\u53D1\u9001"
14953
+ "fa-song": "\u53D1\u9001",
14954
+ "token-fail": "\u8BA4\u8BC1\u5931\u6548"
14927
14955
  };
14928
14956
 
14929
14957
  // src/locales/i18n.ts
@@ -16456,6 +16484,7 @@ var PuPlayer = (props) => {
16456
16484
  onConnectedFailed,
16457
16485
  onClose,
16458
16486
  onDisConnected,
16487
+ onTokenFail,
16459
16488
  fullScreenOnDblclick = true,
16460
16489
  enableController = false,
16461
16490
  disabledControls = [],
@@ -16544,7 +16573,6 @@ var PuPlayer = (props) => {
16544
16573
  player.mask.text = t("lost-connection");
16545
16574
  player.close();
16546
16575
  onDisConnected && onDisConnected();
16547
- useRecntMgr == null ? void 0 : useRecntMgr.reconnect();
16548
16576
  },
16549
16577
  onConnected: (_pc) => {
16550
16578
  onConnected && onConnected();
@@ -16602,6 +16630,12 @@ var PuPlayer = (props) => {
16602
16630
  }
16603
16631
  }
16604
16632
  });
16633
+ function tokenFailDetect(err, callBack) {
16634
+ if (TokenFailError.isTokenFailError(err)) {
16635
+ callBack == null ? void 0 : callBack();
16636
+ throw err;
16637
+ }
16638
+ }
16605
16639
  const instance2 = {
16606
16640
  getVideoElement: () => {
16607
16641
  const el = player.video.getVideoEl();
@@ -16653,6 +16687,11 @@ var PuPlayer = (props) => {
16653
16687
  player.intercomUtils = CreateIntercomUtils(intercom == null ? void 0 : intercom.instance, this.protocol);
16654
16688
  }
16655
16689
  } catch (e) {
16690
+ tokenFailDetect(e, () => {
16691
+ player.mask.visible = true;
16692
+ player.mask.text = t("token-fail");
16693
+ onTokenFail == null ? void 0 : onTokenFail();
16694
+ });
16656
16695
  if (protocol == "webrtc") {
16657
16696
  player.mask.visible = true;
16658
16697
  player.mask.text = e.toString();
@@ -16676,6 +16715,8 @@ var PuPlayer = (props) => {
16676
16715
  logger_default.debug("error\u7684\u7C7B\u578B", e.name, e instanceof OpenDialogError);
16677
16716
  if (e instanceof OpenDialogError)
16678
16717
  throw e;
16718
+ player.mask.visible = true;
16719
+ player.mask.text = t("connecting") + "...";
16679
16720
  const captureStream = () => hplayer == null ? void 0 : hplayer.captureStream();
16680
16721
  player.enableCanvas(true, captureStream);
16681
16722
  this.protocol = "ws-bvrtc";
@@ -16735,6 +16776,9 @@ var PuPlayer = (props) => {
16735
16776
  logger_default.info("ws-bvrtc remoteSDP: ", dialog.sdp);
16736
16777
  hplayer.setRemoteSDP(dialog.dialogId, dialog.sdp);
16737
16778
  } catch (e2) {
16779
+ if (TokenFailError.isTokenFailError(e2)) {
16780
+ throw e2;
16781
+ }
16738
16782
  throw t("da-kai-shi-bai");
16739
16783
  }
16740
16784
  player.statsInfosV1 = () => {
@@ -16794,6 +16838,7 @@ var PuPlayer = (props) => {
16794
16838
  });
16795
16839
  });
16796
16840
  player.addEventListener("close", closeHandle);
16841
+ player.mask.visible = false;
16797
16842
  onConnected && onConnected();
16798
16843
  reconnectMgr == null ? void 0 : reconnectMgr.cancelReconnect();
16799
16844
  dialog_default.closeDialogs([dialogId || ""], tempToken || "");
@@ -16846,6 +16891,11 @@ var PuPlayer = (props) => {
16846
16891
  player.mikeBtn.type = this.protocol;
16847
16892
  }
16848
16893
  } catch (e2) {
16894
+ tokenFailDetect(e2, () => {
16895
+ player.mask.visible = true;
16896
+ player.mask.text = t("token-fail");
16897
+ onTokenFail == null ? void 0 : onTokenFail();
16898
+ });
16849
16899
  player.mask.visible = true;
16850
16900
  player.mask.text = e2.toString();
16851
16901
  hplayer == null ? void 0 : hplayer.close();
@@ -1,4 +1,9 @@
1
1
  import { CustomError } from "src/core/error";
2
+ export declare class TokenFailError extends CustomError {
3
+ constructor(message?: string);
4
+ static isTokenFailError(e: any): boolean;
5
+ toString(): string;
6
+ }
2
7
  export declare class OpenDialogError extends CustomError {
3
8
  constructor(message?: string);
4
9
  toString(): string;
@@ -35,6 +35,7 @@ export interface IPuPlayerProps extends Props {
35
35
  onConnectedFailed?(): void;
36
36
  onClose?(): void;
37
37
  onDisConnected?(): void;
38
+ onTokenFail?(): void;
38
39
  maxReconnectInterval?: number;
39
40
  locale?: "zh" | "en";
40
41
  noVideoRendeAudioWaveform?: boolean;
@@ -2,6 +2,7 @@ declare class CustomError extends Error {
2
2
  name: string;
3
3
  status: number;
4
4
  static ErrorStatus: {
5
+ TOKEN_FAIL: number;
5
6
  OPEN_DIALOG_FAILED: number;
6
7
  WEBRTC_H265: number;
7
8
  PTZ_CAMERA_OPERATION_FAILURE: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@besovideo/webrtc-player",
3
- "version": "0.8.78",
3
+ "version": "0.8.80",
4
4
  "description": "@besovideo/webrtc-player desc",
5
5
  "type": "module",
6
6
  "types": "./dist/types/main.d.ts",