@ray-js/ray-ipc-player 2.0.28 → 2.0.29-beta-2
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/lib/index.js +30 -2
- package/lib/typings/index.d.ts +9 -3
- 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, performanceEvent } from '@ray-js/ray';
|
|
10
|
+
import { setPageOrientation, usePageEvent, getNetworkType, offNetworkStatusChange, onNetworkStatusChange, publishDps, showToast, getSystemInfoSync, onMqttMessageReceived, registerMQTTProtocolListener, offMqttMessageReceived, unregisterMQTTProtocolListener, registerDeviceListListener, onDpDataChange, onDeviceOnlineStatusUpdate, performanceEvent, getCurrentPages } from '@ray-js/ray';
|
|
11
11
|
import clsx from 'clsx';
|
|
12
12
|
import Strings from './i18n';
|
|
13
13
|
import { IpcFailCode } from './constant';
|
|
@@ -60,7 +60,8 @@ const Player = props => {
|
|
|
60
60
|
onChangeIgnoreHideStopPreview,
|
|
61
61
|
hideSuggestedText = false,
|
|
62
62
|
hideHelpButton = false,
|
|
63
|
-
hideFeedBackButton = false
|
|
63
|
+
hideFeedBackButton = false,
|
|
64
|
+
playerRoute = ''
|
|
64
65
|
} = props;
|
|
65
66
|
const {
|
|
66
67
|
borderRadius,
|
|
@@ -196,6 +197,12 @@ const Player = props => {
|
|
|
196
197
|
stopPreview();
|
|
197
198
|
// await getCurMute();
|
|
198
199
|
}));
|
|
200
|
+
usePageEvent('onPause', useMemoizedFn(async () => {
|
|
201
|
+
console.log('onResume, 重新拉流');
|
|
202
|
+
ipcTTTOperatorLog('VID: onResume stopPreview');
|
|
203
|
+
stopPreview();
|
|
204
|
+
disconnect();
|
|
205
|
+
}));
|
|
199
206
|
useMount(() => {
|
|
200
207
|
onNetworkStatusChange(res => {
|
|
201
208
|
setPhoneNetworkConnect(res.isConnected);
|
|
@@ -373,6 +380,11 @@ const Player = props => {
|
|
|
373
380
|
|
|
374
381
|
// 无需关心连接状态直接发起重新连接
|
|
375
382
|
const _reConnect = () => {
|
|
383
|
+
console.log('不在播放器路由内, 不进行标记');
|
|
384
|
+
// 排除默认值为"",不等于播放器路由时, 不进行连接操作
|
|
385
|
+
if (playerRoute !== '' && playerRoute !== getPlayerRoute()) {
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
376
388
|
setPlayState(d => {
|
|
377
389
|
d.connectState = true;
|
|
378
390
|
d.loadingText = Strings.getLang('ipc_player_get_video_stream');
|
|
@@ -469,8 +481,14 @@ const Player = props => {
|
|
|
469
481
|
}, 15000);
|
|
470
482
|
}
|
|
471
483
|
});
|
|
484
|
+
const getPlayerRoute = () => {
|
|
485
|
+
const pages = getCurrentPages(); // 获取当前页面栈
|
|
486
|
+
const currentPage = pages[pages.length - 1]; // 获取当前页面实例
|
|
487
|
+
return currentPage.route;
|
|
488
|
+
};
|
|
472
489
|
const retry = useMemoizedFn(() => {
|
|
473
490
|
console.log('重新拉流启动');
|
|
491
|
+
|
|
474
492
|
// 任何重试拉流时, 将播放器状态还原为loading状态
|
|
475
493
|
setVideoErrCode('');
|
|
476
494
|
setPlayState(d => {
|
|
@@ -478,6 +496,12 @@ const Player = props => {
|
|
|
478
496
|
d.errorState = false;
|
|
479
497
|
d.errorMsg = '';
|
|
480
498
|
});
|
|
499
|
+
// 排除默认值为"",不等于播放器路由时, 不进行重试拉流
|
|
500
|
+
|
|
501
|
+
if (playerRoute !== '' && playerRoute !== getPlayerRoute()) {
|
|
502
|
+
console.log('不在播放器路由内, 不进行拉流');
|
|
503
|
+
return;
|
|
504
|
+
}
|
|
481
505
|
phoneNetworkConnect && onlineStatus && privateState && (!isLowPowerDevice || isVirtualDevice) && handleReWakeCamera();
|
|
482
506
|
|
|
483
507
|
// 低功耗设备隐私模式需单独处理,先进行下发唤醒, 唤醒后再进行下发DP
|
|
@@ -498,6 +522,10 @@ const Player = props => {
|
|
|
498
522
|
// 建立连接
|
|
499
523
|
const createConnect = useMemoizedFn(async params => {
|
|
500
524
|
var _ipcCtx$current;
|
|
525
|
+
if (playerRoute !== '' && playerRoute !== getPlayerRoute()) {
|
|
526
|
+
console.log('不在播放器路由内, 不进行连接操作');
|
|
527
|
+
return;
|
|
528
|
+
}
|
|
501
529
|
// console.log('建立连接前:', devId, Date.now());
|
|
502
530
|
// 若走到连接状态,需清除低功耗15秒超时定时
|
|
503
531
|
privateLowPowerDeviceTimeOutRef.current && clearTimeout(privateWakeOutTimeRef.current);
|
package/lib/typings/index.d.ts
CHANGED
|
@@ -195,19 +195,25 @@ export type IProps = {
|
|
|
195
195
|
/**
|
|
196
196
|
* @description.en hide suggested text
|
|
197
197
|
* @description.zh 隐藏建议文案
|
|
198
|
-
* @default
|
|
198
|
+
* @default false
|
|
199
199
|
*/
|
|
200
200
|
hideSuggestedText?: boolean;
|
|
201
201
|
/**
|
|
202
202
|
* @description.en hide help button
|
|
203
203
|
* @description.zh 隐藏反馈帮助按钮
|
|
204
|
-
* @default
|
|
204
|
+
* @default false
|
|
205
205
|
*/
|
|
206
206
|
hideHelpButton?: boolean;
|
|
207
207
|
/**
|
|
208
208
|
* @description.en hide feedback button
|
|
209
209
|
* @description.zh 隐藏反馈按钮
|
|
210
|
-
* @default
|
|
210
|
+
* @default false
|
|
211
211
|
*/
|
|
212
212
|
hideFeedBackButton?: boolean;
|
|
213
|
+
/**
|
|
214
|
+
* @description.en Route where the player is located
|
|
215
|
+
* @description.zh 播放器所在路由
|
|
216
|
+
* @default '
|
|
217
|
+
*/
|
|
218
|
+
playerRoute?: string;
|
|
213
219
|
};
|