chore(deps): 更新项目依赖包版本
- 升级 webpack-cli 从 6.0.1 到 7.0.0 版本 - 更新 @discoveryjs/json-ext 从 0.6.3 到 1.0.0 版本 - 升级 commander 从 12.1.0 到 14.0.3 版本 - 更新 stylelint-order 从 8.0.0 到 8.1.0 版本 - 升级 vite-plugin-vue-devtools 从 8.0.7 到 8.1.0 版本 - 更新 @vue/devtools-core 从 8.0.7 到 8.1.0 版本 - 升级 @vue/devtools-kit 和 @vue/devtools-shared 到 8.1.0 版本 - 更新 @vue/shared 从 3.5.29 到 3.5.30 版本 - 优化会议房间学生端视频播放逻辑,添加 nextTick 等待 DOM 更新 - 重构声网会议初始化逻辑,清理旧客户端监听器防止重复注册 - 修改远程视频播放策略,移除自动播放改为业务层手动控制
This commit is contained in:
@ -72,6 +72,6 @@
|
||||
"typescript": "^5.9.3",
|
||||
"typescript-eslint": "^8.57.0",
|
||||
"webpack": "^5.105.4",
|
||||
"webpack-cli": "^6.0.1"
|
||||
"webpack-cli": "^7.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
114
node_api/pnpm-lock.yaml
generated
114
node_api/pnpm-lock.yaml
generated
@ -101,7 +101,7 @@ importers:
|
||||
version: 10.0.1(eslint@10.0.3)
|
||||
'@nestjs/cli':
|
||||
specifier: ^11.0.16
|
||||
version: 11.0.16(@swc/core@1.15.18)(@types/node@25.5.0)(webpack-cli@6.0.1)
|
||||
version: 11.0.16(@swc/core@1.15.18)(@types/node@25.5.0)(webpack-cli@7.0.0)
|
||||
'@swc/core':
|
||||
specifier: ^1.15.18
|
||||
version: 1.15.18
|
||||
@ -152,10 +152,10 @@ importers:
|
||||
version: 8.57.0(eslint@10.0.3)(typescript@5.9.3)
|
||||
webpack:
|
||||
specifier: ^5.105.4
|
||||
version: 5.105.4(@swc/core@1.15.18)(webpack-cli@6.0.1)
|
||||
version: 5.105.4(@swc/core@1.15.18)(webpack-cli@7.0.0)
|
||||
webpack-cli:
|
||||
specifier: ^6.0.1
|
||||
version: 6.0.1(webpack@5.105.4)
|
||||
specifier: ^7.0.0
|
||||
version: 7.0.0(webpack@5.105.4)
|
||||
|
||||
packages:
|
||||
|
||||
@ -205,8 +205,8 @@ packages:
|
||||
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
|
||||
engines: {node: '>=0.1.90'}
|
||||
|
||||
'@discoveryjs/json-ext@0.6.3':
|
||||
resolution: {integrity: sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==}
|
||||
'@discoveryjs/json-ext@1.0.0':
|
||||
resolution: {integrity: sha512-dDlz3W405VMFO4w5kIP9DOmELBcvFQGmLoKSdIRstBDubKFYwaNHV1NnlzMCQpXQFGWVALmeMORAuiLx18AvZQ==}
|
||||
engines: {node: '>=14.17.0'}
|
||||
|
||||
'@es-joy/jsdoccomment@0.84.0':
|
||||
@ -1043,31 +1043,6 @@ packages:
|
||||
'@webassemblyjs/wast-printer@1.14.1':
|
||||
resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==}
|
||||
|
||||
'@webpack-cli/configtest@3.0.1':
|
||||
resolution: {integrity: sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==}
|
||||
engines: {node: '>=18.12.0'}
|
||||
peerDependencies:
|
||||
webpack: ^5.82.0
|
||||
webpack-cli: 6.x.x
|
||||
|
||||
'@webpack-cli/info@3.0.1':
|
||||
resolution: {integrity: sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==}
|
||||
engines: {node: '>=18.12.0'}
|
||||
peerDependencies:
|
||||
webpack: ^5.82.0
|
||||
webpack-cli: 6.x.x
|
||||
|
||||
'@webpack-cli/serve@3.0.1':
|
||||
resolution: {integrity: sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==}
|
||||
engines: {node: '>=18.12.0'}
|
||||
peerDependencies:
|
||||
webpack: ^5.82.0
|
||||
webpack-cli: 6.x.x
|
||||
webpack-dev-server: '*'
|
||||
peerDependenciesMeta:
|
||||
webpack-dev-server:
|
||||
optional: true
|
||||
|
||||
'@xtuc/ieee754@1.2.0':
|
||||
resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
|
||||
|
||||
@ -1337,9 +1312,9 @@ packages:
|
||||
colorette@2.0.20:
|
||||
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
|
||||
|
||||
commander@12.1.0:
|
||||
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
|
||||
engines: {node: '>=18'}
|
||||
commander@14.0.3:
|
||||
resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
|
||||
engines: {node: '>=20'}
|
||||
|
||||
commander@2.20.3:
|
||||
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
|
||||
@ -2836,14 +2811,14 @@ packages:
|
||||
wcwidth@1.0.1:
|
||||
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
|
||||
|
||||
webpack-cli@6.0.1:
|
||||
resolution: {integrity: sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==}
|
||||
engines: {node: '>=18.12.0'}
|
||||
webpack-cli@7.0.0:
|
||||
resolution: {integrity: sha512-NbM62WodkUPXQGR/Ip3pSFsFUKJSseDIFr2H5Z1+4fHwB9X4cO10knPShIopFqAHZa8a5Q8pdtmtE6C12/mlMQ==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
webpack: ^5.82.0
|
||||
webpack-bundle-analyzer: '*'
|
||||
webpack-dev-server: '*'
|
||||
webpack: ^5.101.0
|
||||
webpack-bundle-analyzer: ^4.0.0 || ^5.0.0
|
||||
webpack-dev-server: ^5.0.0
|
||||
peerDependenciesMeta:
|
||||
webpack-bundle-analyzer:
|
||||
optional: true
|
||||
@ -2998,7 +2973,7 @@ snapshots:
|
||||
'@colors/colors@1.5.0':
|
||||
optional: true
|
||||
|
||||
'@discoveryjs/json-ext@0.6.3': {}
|
||||
'@discoveryjs/json-ext@1.0.0': {}
|
||||
|
||||
'@es-joy/jsdoccomment@0.84.0':
|
||||
dependencies:
|
||||
@ -3382,7 +3357,7 @@ snapshots:
|
||||
'@mikro-orm/core': 7.0.1
|
||||
kysely: 0.28.11
|
||||
|
||||
'@nestjs/cli@11.0.16(@swc/core@1.15.18)(@types/node@25.5.0)(webpack-cli@6.0.1)':
|
||||
'@nestjs/cli@11.0.16(@swc/core@1.15.18)(@types/node@25.5.0)(webpack-cli@7.0.0)':
|
||||
dependencies:
|
||||
'@angular-devkit/core': 19.2.19(chokidar@4.0.3)
|
||||
'@angular-devkit/schematics': 19.2.19(chokidar@4.0.3)
|
||||
@ -3393,14 +3368,14 @@ snapshots:
|
||||
chokidar: 4.0.3
|
||||
cli-table3: 0.6.5
|
||||
commander: 4.1.1
|
||||
fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.9.3)(webpack@5.104.1(@swc/core@1.15.18)(webpack-cli@6.0.1))
|
||||
fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.9.3)(webpack@5.104.1(@swc/core@1.15.18)(webpack-cli@7.0.0))
|
||||
glob: 13.0.0
|
||||
node-emoji: 1.11.0
|
||||
ora: 5.4.1
|
||||
tsconfig-paths: 4.2.0
|
||||
tsconfig-paths-webpack-plugin: 4.2.0
|
||||
typescript: 5.9.3
|
||||
webpack: 5.104.1(@swc/core@1.15.18)(webpack-cli@6.0.1)
|
||||
webpack: 5.104.1(@swc/core@1.15.18)(webpack-cli@7.0.0)
|
||||
webpack-node-externals: 3.0.0
|
||||
optionalDependencies:
|
||||
'@swc/core': 1.15.18
|
||||
@ -3813,21 +3788,6 @@ snapshots:
|
||||
'@webassemblyjs/ast': 1.14.1
|
||||
'@xtuc/long': 4.2.2
|
||||
|
||||
'@webpack-cli/configtest@3.0.1(webpack-cli@6.0.1)(webpack@5.105.4)':
|
||||
dependencies:
|
||||
webpack: 5.105.4(@swc/core@1.15.18)(webpack-cli@6.0.1)
|
||||
webpack-cli: 6.0.1(webpack@5.105.4)
|
||||
|
||||
'@webpack-cli/info@3.0.1(webpack-cli@6.0.1)(webpack@5.105.4)':
|
||||
dependencies:
|
||||
webpack: 5.105.4(@swc/core@1.15.18)(webpack-cli@6.0.1)
|
||||
webpack-cli: 6.0.1(webpack@5.105.4)
|
||||
|
||||
'@webpack-cli/serve@3.0.1(webpack-cli@6.0.1)(webpack@5.105.4)':
|
||||
dependencies:
|
||||
webpack: 5.105.4(@swc/core@1.15.18)(webpack-cli@6.0.1)
|
||||
webpack-cli: 6.0.1(webpack@5.105.4)
|
||||
|
||||
'@xtuc/ieee754@1.2.0': {}
|
||||
|
||||
'@xtuc/long@4.2.2': {}
|
||||
@ -4088,7 +4048,7 @@ snapshots:
|
||||
|
||||
colorette@2.0.20: {}
|
||||
|
||||
commander@12.1.0: {}
|
||||
commander@14.0.3: {}
|
||||
|
||||
commander@2.20.3: {}
|
||||
|
||||
@ -4526,7 +4486,7 @@ snapshots:
|
||||
|
||||
flatted@3.4.1: {}
|
||||
|
||||
fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.3)(webpack@5.104.1(@swc/core@1.15.18)(webpack-cli@6.0.1)):
|
||||
fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.3)(webpack@5.104.1(@swc/core@1.15.18)(webpack-cli@7.0.0)):
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.29.0
|
||||
chalk: 4.1.2
|
||||
@ -4541,7 +4501,7 @@ snapshots:
|
||||
semver: 7.7.4
|
||||
tapable: 2.3.0
|
||||
typescript: 5.9.3
|
||||
webpack: 5.104.1(@swc/core@1.15.18)(webpack-cli@6.0.1)
|
||||
webpack: 5.104.1(@swc/core@1.15.18)(webpack-cli@7.0.0)
|
||||
|
||||
formstream@1.5.2:
|
||||
dependencies:
|
||||
@ -5441,13 +5401,13 @@ snapshots:
|
||||
is-type-of: 1.4.0
|
||||
sdk-base: 3.6.0
|
||||
|
||||
terser-webpack-plugin@5.4.0(@swc/core@1.15.18)(webpack@5.104.1(@swc/core@1.15.18)(webpack-cli@6.0.1)):
|
||||
terser-webpack-plugin@5.4.0(@swc/core@1.15.18)(webpack@5.104.1(@swc/core@1.15.18)(webpack-cli@7.0.0)):
|
||||
dependencies:
|
||||
'@jridgewell/trace-mapping': 0.3.31
|
||||
jest-worker: 27.5.1
|
||||
schema-utils: 4.3.3
|
||||
terser: 5.46.0
|
||||
webpack: 5.104.1(@swc/core@1.15.18)(webpack-cli@6.0.1)
|
||||
webpack: 5.104.1(@swc/core@1.15.18)(webpack-cli@7.0.0)
|
||||
optionalDependencies:
|
||||
'@swc/core': 1.15.18
|
||||
|
||||
@ -5457,7 +5417,7 @@ snapshots:
|
||||
jest-worker: 27.5.1
|
||||
schema-utils: 4.3.3
|
||||
terser: 5.46.0
|
||||
webpack: 5.105.4(@swc/core@1.15.18)(webpack-cli@6.0.1)
|
||||
webpack: 5.105.4(@swc/core@1.15.18)(webpack-cli@7.0.0)
|
||||
optionalDependencies:
|
||||
'@swc/core': 1.15.18
|
||||
|
||||
@ -5518,7 +5478,7 @@ snapshots:
|
||||
semver: 7.7.4
|
||||
source-map: 0.7.6
|
||||
typescript: 5.9.3
|
||||
webpack: 5.105.4(@swc/core@1.15.18)(webpack-cli@6.0.1)
|
||||
webpack: 5.105.4(@swc/core@1.15.18)(webpack-cli@7.0.0)
|
||||
|
||||
tsconfig-paths-webpack-plugin@4.2.0:
|
||||
dependencies:
|
||||
@ -5627,21 +5587,17 @@ snapshots:
|
||||
dependencies:
|
||||
defaults: 1.0.4
|
||||
|
||||
webpack-cli@6.0.1(webpack@5.105.4):
|
||||
webpack-cli@7.0.0(webpack@5.105.4):
|
||||
dependencies:
|
||||
'@discoveryjs/json-ext': 0.6.3
|
||||
'@webpack-cli/configtest': 3.0.1(webpack-cli@6.0.1)(webpack@5.105.4)
|
||||
'@webpack-cli/info': 3.0.1(webpack-cli@6.0.1)(webpack@5.105.4)
|
||||
'@webpack-cli/serve': 3.0.1(webpack-cli@6.0.1)(webpack@5.105.4)
|
||||
colorette: 2.0.20
|
||||
commander: 12.1.0
|
||||
'@discoveryjs/json-ext': 1.0.0
|
||||
commander: 14.0.3
|
||||
cross-spawn: 7.0.6
|
||||
envinfo: 7.21.0
|
||||
fastest-levenshtein: 1.0.16
|
||||
import-local: 3.2.0
|
||||
interpret: 3.1.1
|
||||
rechoir: 0.8.0
|
||||
webpack: 5.105.4(@swc/core@1.15.18)(webpack-cli@6.0.1)
|
||||
webpack: 5.105.4(@swc/core@1.15.18)(webpack-cli@7.0.0)
|
||||
webpack-merge: 6.0.1
|
||||
|
||||
webpack-merge@6.0.1:
|
||||
@ -5654,7 +5610,7 @@ snapshots:
|
||||
|
||||
webpack-sources@3.3.4: {}
|
||||
|
||||
webpack@5.104.1(@swc/core@1.15.18)(webpack-cli@6.0.1):
|
||||
webpack@5.104.1(@swc/core@1.15.18)(webpack-cli@7.0.0):
|
||||
dependencies:
|
||||
'@types/eslint-scope': 3.7.7
|
||||
'@types/estree': 1.0.8
|
||||
@ -5678,17 +5634,17 @@ snapshots:
|
||||
neo-async: 2.6.2
|
||||
schema-utils: 4.3.3
|
||||
tapable: 2.3.0
|
||||
terser-webpack-plugin: 5.4.0(@swc/core@1.15.18)(webpack@5.104.1(@swc/core@1.15.18)(webpack-cli@6.0.1))
|
||||
terser-webpack-plugin: 5.4.0(@swc/core@1.15.18)(webpack@5.104.1(@swc/core@1.15.18)(webpack-cli@7.0.0))
|
||||
watchpack: 2.5.1
|
||||
webpack-sources: 3.3.4
|
||||
optionalDependencies:
|
||||
webpack-cli: 6.0.1(webpack@5.105.4)
|
||||
webpack-cli: 7.0.0(webpack@5.105.4)
|
||||
transitivePeerDependencies:
|
||||
- '@swc/core'
|
||||
- esbuild
|
||||
- uglify-js
|
||||
|
||||
webpack@5.105.4(@swc/core@1.15.18)(webpack-cli@6.0.1):
|
||||
webpack@5.105.4(@swc/core@1.15.18)(webpack-cli@7.0.0):
|
||||
dependencies:
|
||||
'@types/eslint-scope': 3.7.7
|
||||
'@types/estree': 1.0.8
|
||||
@ -5716,7 +5672,7 @@ snapshots:
|
||||
watchpack: 2.5.1
|
||||
webpack-sources: 3.3.4
|
||||
optionalDependencies:
|
||||
webpack-cli: 6.0.1(webpack@5.105.4)
|
||||
webpack-cli: 7.0.0(webpack@5.105.4)
|
||||
transitivePeerDependencies:
|
||||
- '@swc/core'
|
||||
- esbuild
|
||||
|
||||
@ -120,7 +120,7 @@
|
||||
"stylelint": "^17.4.0",
|
||||
"stylelint-config-html": "^1.1.0",
|
||||
"stylelint-config-recommended-scss": "^17.0.0",
|
||||
"stylelint-order": "^8.0.0",
|
||||
"stylelint-order": "^8.1.0",
|
||||
"stylelint-scss": "^7.0.0",
|
||||
"typescript": "~5.9.3",
|
||||
"typescript-eslint": "^8.57.0",
|
||||
@ -130,7 +130,7 @@
|
||||
"vite-auto-deploy": "^2.0.34",
|
||||
"vite-plugin-banner": "^0.8.1",
|
||||
"vite-plugin-image-optimizer": "^2.0.3",
|
||||
"vite-plugin-vue-devtools": "^8.0.7",
|
||||
"vite-plugin-vue-devtools": "^8.1.0",
|
||||
"vue-eslint-parser": "^10.4.0",
|
||||
"vue-tsc": "^3.2.5"
|
||||
},
|
||||
|
||||
59
pnpm-lock.yaml
generated
59
pnpm-lock.yaml
generated
@ -262,8 +262,8 @@ importers:
|
||||
specifier: ^17.0.0
|
||||
version: 17.0.0(postcss@8.5.8)(stylelint@17.4.0(typescript@5.9.3))
|
||||
stylelint-order:
|
||||
specifier: ^8.0.0
|
||||
version: 8.0.0(stylelint@17.4.0(typescript@5.9.3))
|
||||
specifier: ^8.1.0
|
||||
version: 8.1.0(stylelint@17.4.0(typescript@5.9.3))
|
||||
stylelint-scss:
|
||||
specifier: ^7.0.0
|
||||
version: 7.0.0(stylelint@17.4.0(typescript@5.9.3))
|
||||
@ -292,8 +292,8 @@ importers:
|
||||
specifier: ^2.0.3
|
||||
version: 2.0.3(sharp@0.34.5)(vite@8.0.0(@types/node@25.5.0)(jiti@2.6.1)(sass@1.98.0)(yaml@2.8.2))
|
||||
vite-plugin-vue-devtools:
|
||||
specifier: ^8.0.7
|
||||
version: 8.0.7(vite@8.0.0(@types/node@25.5.0)(jiti@2.6.1)(sass@1.98.0)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3))
|
||||
specifier: ^8.1.0
|
||||
version: 8.1.0(vite@8.0.0(@types/node@25.5.0)(jiti@2.6.1)(sass@1.98.0)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3))
|
||||
vue-eslint-parser:
|
||||
specifier: ^10.4.0
|
||||
version: 10.4.0(eslint@10.0.3(jiti@2.6.1))
|
||||
@ -1441,8 +1441,8 @@ packages:
|
||||
'@vue/devtools-api@8.0.7':
|
||||
resolution: {integrity: sha512-tc1TXAxclsn55JblLkFVcIRG7MeSJC4fWsPjfM7qu/IcmPUYnQ5Q8vzWwBpyDY24ZjmZTUCCwjRSNbx58IhlAA==}
|
||||
|
||||
'@vue/devtools-core@8.0.7':
|
||||
resolution: {integrity: sha512-PmpiPxvg3Of80ODHVvyckxwEW1Z02VIAvARIZS1xegINn3VuNQLm9iHUmKD+o6cLkMNWV8OG8x7zo0kgydZgdg==}
|
||||
'@vue/devtools-core@8.1.0':
|
||||
resolution: {integrity: sha512-LvD1VgDpoHmYL00IgKRLKktF6SsPAb0yaV8wB8q2jRwsAWvqhS8+vsMLEGKNs7uoKyymXhT92dhxgf/wir6YGQ==}
|
||||
peerDependencies:
|
||||
vue: ^3.0.0
|
||||
|
||||
@ -1452,12 +1452,18 @@ packages:
|
||||
'@vue/devtools-kit@8.0.7':
|
||||
resolution: {integrity: sha512-H6esJGHGl5q0E9iV3m2EoBQHJ+V83WMW83A0/+Fn95eZ2iIvdsq4+UCS6yT/Fdd4cGZSchx/MdWDreM3WqMsDw==}
|
||||
|
||||
'@vue/devtools-kit@8.1.0':
|
||||
resolution: {integrity: sha512-/NZlS4WtGIB54DA/z10gzk+n/V7zaqSzYZOVlg2CfdnpIKdB61bd7JDIMxf/zrtX41zod8E2/bbEBoW/d7x70Q==}
|
||||
|
||||
'@vue/devtools-shared@7.7.9':
|
||||
resolution: {integrity: sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==}
|
||||
|
||||
'@vue/devtools-shared@8.0.7':
|
||||
resolution: {integrity: sha512-CgAb9oJH5NUmbQRdYDj/1zMiaICYSLtm+B1kxcP72LBrifGAjUmt8bx52dDH1gWRPlQgxGPqpAMKavzVirAEhA==}
|
||||
|
||||
'@vue/devtools-shared@8.1.0':
|
||||
resolution: {integrity: sha512-h8uCb4Qs8UT8VdTT5yjY6tOJ//qH7EpxToixR0xqejR55t5OdISIg7AJ7eBkhBs8iu1qG5gY3QQNN1DF1EelAA==}
|
||||
|
||||
'@vue/language-core@3.2.5':
|
||||
resolution: {integrity: sha512-d3OIxN/+KRedeM5wQ6H6NIpwS3P5gC9nmyaHgBk+rO6dIsjY+tOh4UlPpiZbAh3YtLdCGEX4M16RmsBqPmJV+g==}
|
||||
|
||||
@ -4194,8 +4200,8 @@ packages:
|
||||
peerDependencies:
|
||||
stylelint: ^17.0.0
|
||||
|
||||
stylelint-order@8.0.0:
|
||||
resolution: {integrity: sha512-1oAwPRz6Ba8u9LPjgvdbeMjZszHhjY6DBBK+xMlS3IC89GdTsvAPpGYvW+dkn6pxc4ZaI1S959g4c8CftZbhIg==}
|
||||
stylelint-order@8.1.0:
|
||||
resolution: {integrity: sha512-ao2+VzToCqbAVGaEYEeSR2zNurvQx+86Kw1d0//kZDx3zlyjvb24dE4J0e4HQgOTruOwZpfaHHRtK58+lrsTAQ==}
|
||||
engines: {node: '>=20.19.0'}
|
||||
peerDependencies:
|
||||
stylelint: ^16.18.0 || ^17.0.0
|
||||
@ -4538,11 +4544,11 @@ packages:
|
||||
peerDependencies:
|
||||
vite: '>=2.0.0'
|
||||
|
||||
vite-plugin-vue-devtools@8.0.7:
|
||||
resolution: {integrity: sha512-BWj/ykGpqVAJVdPyHmSTUm44buz3jPv+6jnvuFdQSRH0kAgP1cEIE4doHiFyqHXOmuB5EQVR/nh2g9YRiRNs9g==}
|
||||
vite-plugin-vue-devtools@8.1.0:
|
||||
resolution: {integrity: sha512-4AvNRePfni3+PqOunACmAImC6SJVpUv6f7/g4oakyre9hYdEMrvDYlNmTZQsJPzVLMcGzn1FvSEqJ/n4HQ9cDg==}
|
||||
engines: {node: '>=v14.21.3'}
|
||||
peerDependencies:
|
||||
vite: ^6.0.0 || ^7.0.0-0 || ^8.0.0-0
|
||||
vite: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
|
||||
vite-plugin-vue-inspector@5.3.2:
|
||||
resolution: {integrity: sha512-YvEKooQcSiBTAs0DoYLfefNja9bLgkFM7NI2b07bE2SruuvX0MEa9cMaxjKVMkeCp5Nz9FRIdcN1rOdFVBeL6Q==}
|
||||
@ -5865,7 +5871,7 @@ snapshots:
|
||||
'@babel/types': 7.29.0
|
||||
'@vue/babel-helper-vue-transform-on': 1.5.0
|
||||
'@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.29.0)
|
||||
'@vue/shared': 3.5.29
|
||||
'@vue/shared': 3.5.30
|
||||
optionalDependencies:
|
||||
'@babel/core': 7.29.0
|
||||
transitivePeerDependencies:
|
||||
@ -5878,7 +5884,7 @@ snapshots:
|
||||
'@babel/helper-module-imports': 7.28.6
|
||||
'@babel/helper-plugin-utils': 7.28.6
|
||||
'@babel/parser': 7.29.0
|
||||
'@vue/compiler-sfc': 3.5.29
|
||||
'@vue/compiler-sfc': 3.5.30
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@ -5950,10 +5956,10 @@ snapshots:
|
||||
dependencies:
|
||||
'@vue/devtools-kit': 8.0.7
|
||||
|
||||
'@vue/devtools-core@8.0.7(vue@3.5.30(typescript@5.9.3))':
|
||||
'@vue/devtools-core@8.1.0(vue@3.5.30(typescript@5.9.3))':
|
||||
dependencies:
|
||||
'@vue/devtools-kit': 8.0.7
|
||||
'@vue/devtools-shared': 8.0.7
|
||||
'@vue/devtools-kit': 8.1.0
|
||||
'@vue/devtools-shared': 8.1.0
|
||||
vue: 3.5.30(typescript@5.9.3)
|
||||
|
||||
'@vue/devtools-kit@7.7.9':
|
||||
@ -5973,12 +5979,21 @@ snapshots:
|
||||
hookable: 5.5.3
|
||||
perfect-debounce: 2.1.0
|
||||
|
||||
'@vue/devtools-kit@8.1.0':
|
||||
dependencies:
|
||||
'@vue/devtools-shared': 8.1.0
|
||||
birpc: 2.9.0
|
||||
hookable: 5.5.3
|
||||
perfect-debounce: 2.1.0
|
||||
|
||||
'@vue/devtools-shared@7.7.9':
|
||||
dependencies:
|
||||
rfdc: 1.4.1
|
||||
|
||||
'@vue/devtools-shared@8.0.7': {}
|
||||
|
||||
'@vue/devtools-shared@8.1.0': {}
|
||||
|
||||
'@vue/language-core@3.2.5':
|
||||
dependencies:
|
||||
'@volar/language-core': 2.4.28
|
||||
@ -8902,7 +8917,7 @@ snapshots:
|
||||
dependencies:
|
||||
stylelint: 17.4.0(typescript@5.9.3)
|
||||
|
||||
stylelint-order@8.0.0(stylelint@17.4.0(typescript@5.9.3)):
|
||||
stylelint-order@8.1.0(stylelint@17.4.0(typescript@5.9.3)):
|
||||
dependencies:
|
||||
postcss: 8.5.8
|
||||
postcss-sorting: 10.0.0(postcss@8.5.8)
|
||||
@ -9367,11 +9382,11 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
vite-plugin-vue-devtools@8.0.7(vite@8.0.0(@types/node@25.5.0)(jiti@2.6.1)(sass@1.98.0)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3)):
|
||||
vite-plugin-vue-devtools@8.1.0(vite@8.0.0(@types/node@25.5.0)(jiti@2.6.1)(sass@1.98.0)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3)):
|
||||
dependencies:
|
||||
'@vue/devtools-core': 8.0.7(vue@3.5.30(typescript@5.9.3))
|
||||
'@vue/devtools-kit': 8.0.7
|
||||
'@vue/devtools-shared': 8.0.7
|
||||
'@vue/devtools-core': 8.1.0(vue@3.5.30(typescript@5.9.3))
|
||||
'@vue/devtools-kit': 8.1.0
|
||||
'@vue/devtools-shared': 8.1.0
|
||||
sirv: 3.0.2
|
||||
vite: 8.0.0(@types/node@25.5.0)(jiti@2.6.1)(sass@1.98.0)(yaml@2.8.2)
|
||||
vite-plugin-inspect: 11.3.3(vite@8.0.0(@types/node@25.5.0)(jiti@2.6.1)(sass@1.98.0)(yaml@2.8.2))
|
||||
@ -9389,7 +9404,7 @@ snapshots:
|
||||
'@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0)
|
||||
'@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0)
|
||||
'@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.29.0)
|
||||
'@vue/compiler-dom': 3.5.29
|
||||
'@vue/compiler-dom': 3.5.30
|
||||
kolorist: 1.8.0
|
||||
magic-string: 0.30.21
|
||||
vite: 8.0.0(@types/node@25.5.0)(jiti@2.6.1)(sass@1.98.0)(yaml@2.8.2)
|
||||
|
||||
@ -539,9 +539,6 @@
|
||||
if (typeof screenUid === 'number') {
|
||||
screenShareStreamUid.value = screenUid;
|
||||
Toast.info?.(`用户 ${targetUid} 开始投屏`);
|
||||
setTimeout(() => {
|
||||
ensurePrimaryVideoPlaying(primaryUid.value);
|
||||
}, 300);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -573,6 +570,12 @@
|
||||
screenShareOwnerUid.value = roomData.screenShareOwnerUid;
|
||||
}
|
||||
await meeting.initAndJoin(roomData);
|
||||
// 等待 DOM 更新后再尝试播放视频
|
||||
await nextTick();
|
||||
setTimeout(() => {
|
||||
ensurePrimaryVideoPlaying(primaryUid.value);
|
||||
ensurePrimaryVideoPlaying(secondaryUid.value);
|
||||
}, 500);
|
||||
initSelfWindowPosition();
|
||||
})
|
||||
.catch((e: unknown) => {
|
||||
@ -632,6 +635,12 @@
|
||||
}
|
||||
if (classStatus.value === 'in_class') {
|
||||
await meeting.initAndJoin(roomData);
|
||||
// 等待 DOM 更新后再尝试播放视频
|
||||
await nextTick();
|
||||
setTimeout(() => {
|
||||
ensurePrimaryVideoPlaying(primaryUid.value);
|
||||
ensurePrimaryVideoPlaying(secondaryUid.value);
|
||||
}, 500);
|
||||
initSelfWindowPosition();
|
||||
} else {
|
||||
Toast.info?.('等待老师上课...');
|
||||
|
||||
@ -209,6 +209,11 @@ export function useAgoraMeeting(
|
||||
*/
|
||||
function initClient(): void {
|
||||
try {
|
||||
// ✅ 先清理旧 client 的监听器,防止重复注册
|
||||
if (client.value) {
|
||||
client.value.removeAllListeners?.();
|
||||
}
|
||||
|
||||
client.value = AgoraRTC.createClient({ mode: 'rtc', codec: 'vp8' });
|
||||
if (tokenManagerRef.value) {
|
||||
tokenManagerRef.value.bindClient(client.value);
|
||||
@ -216,9 +221,9 @@ export function useAgoraMeeting(
|
||||
|
||||
/**
|
||||
* 播放远程视频到指定播放器
|
||||
* @param user - 远程用户
|
||||
* @param playerId - 播放器元素 ID
|
||||
* @deprecated 学生端使用 autoPlayRemoteVideo=false,由业务层自行处理
|
||||
*/
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
const playRemoteVideo = (user: IAgoraRTCRemoteUser, playerId: string) => {
|
||||
console.log(`【声网】准备播放远程视频 ${playerId}:`, user.uid);
|
||||
setTimeout(() => {
|
||||
@ -251,12 +256,12 @@ export function useAgoraMeeting(
|
||||
}
|
||||
console.log('【声网】订阅成功:', user.uid, '类型:', mediaType, isMainVideo ? '主视频 (高流)' : '小视频 (低流)');
|
||||
|
||||
// 播放远程视频到普通播放器(默认使用 player-${uid},可通过 options 关闭)
|
||||
// ✅ 播放远程视频到普通播放器(默认使用 player-${uid},可通过 options 关闭)
|
||||
if (mediaType === 'video' && (options?.autoPlayRemoteVideo ?? true)) {
|
||||
playRemoteVideo(user, `player-${user.uid}`);
|
||||
}
|
||||
|
||||
// 播放远程音频(声网音频轨道需要手动播放)
|
||||
// ✅ 播放远程音频(声网音频轨道需要手动播放)
|
||||
if (mediaType === 'audio') {
|
||||
console.log('【声网】收到远程音频,audioTrack:', user.audioTrack);
|
||||
if (user.audioTrack) {
|
||||
@ -271,8 +276,11 @@ export function useAgoraMeeting(
|
||||
}
|
||||
}
|
||||
|
||||
if (!remoteUsers.value.find((u) => u.uid === user.uid)) {
|
||||
// ✅ 只在第一次添加用户到 remoteUsers,防止网络波动导致的重复触发
|
||||
const isNewUser = !remoteUsers.value.find((u) => u.uid === user.uid);
|
||||
if (isNewUser) {
|
||||
remoteUsers.value.push(user);
|
||||
console.log('[声网] 新用户加入,当前用户数:', remoteUsers.value.length);
|
||||
}
|
||||
callbacks?.onUserPublished?.(user, mediaType);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user