@ray-js/ray-ipc-player 2.0.21 → 2.0.23

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.
Files changed (2) hide show
  1. package/lib/index.js +15 -5
  2. package/package.json +1 -1
package/lib/index.js CHANGED
@@ -7,7 +7,7 @@ import { useImmer } from 'use-immer';
7
7
  import _isEmpty from 'lodash/isEmpty';
8
8
  import { IpcPlayer, View, CoverView } from '@ray-js/components';
9
9
  import { useMount, useUnmount, useMemoizedFn } from 'ahooks';
10
- import { setPageOrientation, usePageEvent, getNetworkType, offNetworkStatusChange, onNetworkStatusChange, publishDps, showToast, getSystemInfoSync, onMqttMessageReceived, registerMQTTProtocolListener, offMqttMessageReceived, unregisterMQTTProtocolListener, registerDeviceListListener, onDpDataChange, onDeviceOnlineStatusUpdate } from '@ray-js/ray';
10
+ import { setPageOrientation, usePageEvent, getNetworkType, offNetworkStatusChange, onNetworkStatusChange, publishDps, showToast, getSystemInfoSync, onMqttMessageReceived, registerMQTTProtocolListener, offMqttMessageReceived, unregisterMQTTProtocolListener, registerDeviceListListener, onDpDataChange, onDeviceOnlineStatusUpdate, performanceEvent } from '@ray-js/ray';
11
11
  import clsx from 'clsx';
12
12
  import Strings from './i18n';
13
13
  import Styles from './index.module.less';
@@ -77,6 +77,7 @@ const Player = props => {
77
77
  // 设备在线状态
78
78
  initLy: false
79
79
  });
80
+ const [isVirtualDevice] = useState(devId.startsWith('vdevo'));
80
81
  const [screenType, setScreenType] = useState('portrait');
81
82
  const [videoErrCode, setVideoErrCode] = useState('');
82
83
  // 是否启用下发唤醒指令定时
@@ -93,6 +94,7 @@ const Player = props => {
93
94
  const privateDeviceWakeNeedPublishTimeRef = useRef(null);
94
95
  // connectChangeRef
95
96
  useRef(null);
97
+ const firstPreviewTimeRef = useRef(false);
96
98
  const [isLowPowerDevice] = useState(awakeStatus !== undefined);
97
99
 
98
100
  // 自定义计时老低功耗方案设备在线状态, 用于短暂时间报上下线的UI展示兼容 待实现
@@ -325,6 +327,7 @@ const Player = props => {
325
327
  ipcTTTOperatorLog("VID: privateState_status_change: ".concat(privateState));
326
328
  retry();
327
329
  } else if (playState.initLy && privateState) {
330
+ stopPreview();
328
331
  // 如果隐私模式为true, 主动推一波流变化的状态码,适配ios不触发connectChange的情况
329
332
  onChangeStreamStatus && onChangeStreamStatus(-1001);
330
333
  }
@@ -456,10 +459,10 @@ const Player = props => {
456
459
  d.errorState = false;
457
460
  d.errorMsg = '';
458
461
  });
459
- phoneNetworkConnect && onlineStatus && privateState && !isLowPowerDevice && handleReWakeCamera();
462
+ phoneNetworkConnect && onlineStatus && privateState && (!isLowPowerDevice || isVirtualDevice) && handleReWakeCamera();
460
463
 
461
464
  // 低功耗设备隐私模式需单独处理,先进行下发唤醒, 唤醒后再进行下发DP
462
- phoneNetworkConnect && onlineStatus && privateState && isLowPowerDevice && handleReWakeCameraLowPowerDevice();
465
+ phoneNetworkConnect && onlineStatus && privateState && isLowPowerDevice && !isVirtualDevice && handleReWakeCameraLowPowerDevice();
463
466
  phoneNetworkConnect && onlineStatus && !privateState && _retry();
464
467
  }, [isLowPowerDevice, phoneNetworkConnect && playState.connectState, privateState, onlineStatus]);
465
468
 
@@ -528,6 +531,15 @@ const Player = props => {
528
531
  (_ipcCtx$current2 = ipcCtx.current) === null || _ipcCtx$current2 === void 0 || _ipcCtx$current2.startPreview({
529
532
  success: () => {
530
533
  ipcTTTOperatorLog('VID: start_preview_success');
534
+ if (typeof performanceEvent === 'function' && !firstPreviewTimeRef.current) {
535
+ performanceEvent({
536
+ launchData: '出流成功耗时',
537
+ success: () => {
538
+ firstPreviewTimeRef.current = true;
539
+ }
540
+ });
541
+ }
542
+
531
543
  // console.log('开启预览:', devId);
532
544
  setPlayState(d => {
533
545
  d.loadingState = false;
@@ -806,8 +818,6 @@ const Player = props => {
806
818
  return errContent.suggestedText;
807
819
  // 是否展示点我重试
808
820
  case 'retry':
809
- console.log(privateState, 'privateState========');
810
- console.log(privateState, 'privateState========');
811
821
  if (!phoneNetworkConnect) {
812
822
  return false;
813
823
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ray-js/ray-ipc-player",
3
- "version": "2.0.21",
3
+ "version": "2.0.23",
4
4
  "description": "ray小程序播放器",
5
5
  "keywords": [
6
6
  "tuya-miniapp",