@tencentcloud/sdk-mcp 1.7.7 → 1.7.9-beta.1
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/CHANGELOG.md +13 -0
- package/README.md +7 -9
- package/index.js +8 -8
- package/knowledge/chunker.js +1 -0
- package/knowledge/doc-url-resolver.js +16 -9
- package/knowledge/embedding/build-vectors.js +92 -0
- package/knowledge/embedding/embed-model.js +41 -0
- package/knowledge/embedding/vector-augment.js +126 -0
- package/knowledge/embedding/vector-index.js +70 -0
- package/knowledge/frontmatter-meta.js +23 -0
- package/knowledge/path-meta.js +56 -0
- package/knowledge/search/exact-lookup.js +145 -16
- package/knowledge/search/filter-pool.js +77 -33
- package/knowledge/search/rank-profile.js +25 -0
- package/knowledge/search/requires-framework.js +4 -1
- package/knowledge/search/search-core.js +74 -13
- package/knowledge/search/search-knowledge.js +24 -34
- package/knowledge/search/search-pass.js +495 -169
- package/knowledge/search/url-row-scorer.js +24 -6
- package/package.json +3 -1
- package/resource/index/manifest.json +1 -1
- package/resource/index/vectors/index.json +4 -0
- package/resource/integration/callkit/preset/android/integration.md +0 -2
- package/resource/integration/callkit/preset/ios/integration.md +0 -2
- package/resource/integration/chat/preset/react/integration.md +9 -5
- package/resource/integration/chat/preset/uni-app/integration.md +4 -0
- package/resource/integration/chat/preset/vue/integration.md +10 -6
- package/resource/integration/livekit/preset/live/android/prepare-integration.md +0 -4
- package/resource/integration/livekit/preset/live/ios/prepare-integration.md +0 -4
- package/resource/integration/roomkit/preset/vue/integration.md +154 -208
- package/resource/knowledge/callkit/best-practice/android/video-chat-dating.md +0 -2
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +0 -2
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +0 -2
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +0 -4
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +0 -2
- package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +0 -2
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +0 -2
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +0 -4
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +0 -2
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +0 -2
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +0 -2
- package/resource/knowledge/callkit/faq/ios.md +0 -2
- package/resource/knowledge/callkit/faq/uniapp-app.md +0 -2
- package/resource/knowledge/callkit/preset/miniprogram/integration.md +2 -3
- package/resource/knowledge/callkit/preset/miniprogram/uniapp-integration.md +0 -2
- package/resource/knowledge/chat/preset/ios-uikit/integration.md +0 -16
- package/resource/knowledge/chat/preset/react/h5/integration.md +16 -5
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +6 -3
- package/resource/knowledge/chat/preset/vue/h5/integration.md +7 -4
- package/resource/knowledge/iot/app/activate-service.md +95 -0
- package/resource/knowledge/iot/app/demo/android.md +93 -0
- package/resource/knowledge/iot/app/demo/ios.md +87 -0
- package/resource/knowledge/iot/app/demo/miniprogram.md +79 -0
- package/resource/knowledge/iot/app/device-binding.md +378 -0
- package/resource/knowledge/iot/app/device-sharing.md +414 -0
- package/resource/knowledge/iot/app/family-management.md +762 -0
- package/resource/knowledge/iot/app/integration/android.md +328 -0
- package/resource/knowledge/iot/app/integration/harmonyos.md +326 -0
- package/resource/knowledge/iot/app/integration/ios.md +351 -0
- package/resource/knowledge/iot/app/integration/miniprogram.md +268 -0
- package/resource/knowledge/iot/app/monitor-playback.md +557 -0
- package/resource/knowledge/iot/app/remote-control.md +139 -0
- package/resource/knowledge/iot/app/video-call.md +559 -0
- package/resource/knowledge/iot/app/wechat-call/device-call-miniprogram.md +204 -0
- package/resource/knowledge/iot/app/wechat-call/miniprogram-call-device.md +193 -0
- package/resource/knowledge/iot/client-api/app/android/txiotcallsession.md +189 -0
- package/resource/knowledge/iot/client-api/app/android/txiotcloudstorage.md +77 -0
- package/resource/knowledge/iot/client-api/app/android/txiotdevicemanager.md +175 -0
- package/resource/knowledge/iot/client-api/app/android/txiotengine.md +172 -0
- package/resource/knowledge/iot/client-api/app/android/txiotenginedef.md +163 -0
- package/resource/knowledge/iot/client-api/app/android/txiotfamilymanager.md +146 -0
- package/resource/knowledge/iot/client-api/app/android/txiotmonitorsession.md +246 -0
- package/resource/knowledge/iot/client-api/app/harmonyos/txiotcallsession.md +191 -0
- package/resource/knowledge/iot/client-api/app/harmonyos/txiotcloudstorage.md +77 -0
- package/resource/knowledge/iot/client-api/app/harmonyos/txiotdevicemanager.md +183 -0
- package/resource/knowledge/iot/client-api/app/harmonyos/txiotengine.md +186 -0
- package/resource/knowledge/iot/client-api/app/harmonyos/txiotenginedef.md +164 -0
- package/resource/knowledge/iot/client-api/app/harmonyos/txiotfamilymanager.md +150 -0
- package/resource/knowledge/iot/client-api/app/harmonyos/txiotmonitorsession.md +252 -0
- package/resource/knowledge/iot/client-api/app/ios/txiotcallsession.md +199 -0
- package/resource/knowledge/iot/client-api/app/ios/txiotcloudstorage.md +76 -0
- package/resource/knowledge/iot/client-api/app/ios/txiotdevicemanager.md +173 -0
- package/resource/knowledge/iot/client-api/app/ios/txiotengine.md +173 -0
- package/resource/knowledge/iot/client-api/app/ios/txiotenginedef.md +171 -0
- package/resource/knowledge/iot/client-api/app/ios/txiotfamilymanager.md +146 -0
- package/resource/knowledge/iot/client-api/app/ios/txiotmonitorsession.md +250 -0
- package/resource/knowledge/iot/client-api/app/miniprogram/txiotcallsession.md +180 -0
- package/resource/knowledge/iot/client-api/app/miniprogram/txiotcloudstorage.md +76 -0
- package/resource/knowledge/iot/client-api/app/miniprogram/txiotdevicemanager.md +281 -0
- package/resource/knowledge/iot/client-api/app/miniprogram/txiotengine.md +183 -0
- package/resource/knowledge/iot/client-api/app/miniprogram/txiotenginedef.md +152 -0
- package/resource/knowledge/iot/client-api/app/miniprogram/txiotfamilymanager.md +179 -0
- package/resource/knowledge/iot/client-api/app/miniprogram/txiotmonitorsession.md +226 -0
- package/resource/knowledge/iot/client-api/device/android-smart-device.md +813 -0
- package/resource/knowledge/iot/client-api/device/linux-rtos-device.md +2027 -0
- package/resource/knowledge/iot/device/activate-service.md +167 -0
- package/resource/knowledge/iot/device/ai-voice-chat/advanced-features/custom-agent.md +171 -0
- package/resource/knowledge/iot/device/ai-voice-chat/advanced-features/smart-device-control.md +721 -0
- package/resource/knowledge/iot/device/ai-voice-chat/integration-guide/android-smart-device.md +247 -0
- package/resource/knowledge/iot/device/ai-voice-chat/integration-guide/linux-rtos-device.md +368 -0
- package/resource/knowledge/iot/device/ai-voice-chat/overview.md +84 -0
- package/resource/knowledge/iot/device/cloud-storage.md +696 -0
- package/resource/knowledge/iot/device/data-model.md +972 -0
- package/resource/knowledge/iot/device/demo/android-smart-device.md +97 -0
- package/resource/knowledge/iot/device/demo/linux-rtos-device.md +106 -0
- package/resource/knowledge/iot/device/device-ota-upgrade.md +237 -0
- package/resource/knowledge/iot/device/dynamic-registration/android-smart-device.md +275 -0
- package/resource/knowledge/iot/device/dynamic-registration/linux-rtos-device.md +297 -0
- package/resource/knowledge/iot/device/login-and-register/android-smart-device.md +131 -0
- package/resource/knowledge/iot/device/login-and-register/linux-rtos-device.md +291 -0
- package/resource/knowledge/iot/device/monitor-pushing/android-smart-device.md +237 -0
- package/resource/knowledge/iot/device/monitor-pushing/linux-rtos-device.md +493 -0
- package/resource/knowledge/iot/device/video-call/android-smart-device.md +299 -0
- package/resource/knowledge/iot/device/video-call/linux-rtos-device.md +465 -0
- package/resource/knowledge/iot/device/wechat-call/android-smart-device.md +534 -0
- package/resource/knowledge/iot/device/wechat-call/linux-rtos-device.md +681 -0
- package/resource/knowledge/iot/kids-watch/overview.md +28 -0
- package/resource/knowledge/iot/security-camera/activate-service.md +74 -0
- package/resource/knowledge/iot/security-camera/monitor-playback/app-integration.md +302 -0
- package/resource/knowledge/iot/security-camera/monitor-playback/device-integration/android.md +237 -0
- package/resource/knowledge/iot/security-camera/monitor-playback/device-integration/linux-rtos.md +493 -0
- package/resource/knowledge/iot/security-camera/overview.md +31 -0
- package/resource/knowledge/iot/security-camera/ptz-control.md +153 -0
- package/resource/knowledge/iot/security-camera/recording-and-snapshot.md +182 -0
- package/resource/knowledge/iot/security-camera/voice-intercom.md +174 -0
- package/resource/knowledge/iot/smart-vision/serviceoverview.md +114 -0
- package/resource/knowledge/iot/voice-recorder/app-demo.md +99 -0
- package/resource/knowledge/iot/voice-recorder/device-demo.md +189 -0
- package/resource/knowledge/iot/voice-recorder/overview.md +64 -0
- package/resource/knowledge/livekit/core-sdk/features/android/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/android/gift.md +0 -4
- package/resource/knowledge/livekit/core-sdk/features/android/live-list.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/audio-effect.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/gift.md +0 -4
- package/resource/knowledge/livekit/core-sdk/features/ios/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/gift.md +0 -4
- package/resource/knowledge/livekit/core-sdk/features/ios/live-list.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/gift.md +0 -4
- package/resource/knowledge/livekit/core-sdk/live/android/co-guest-interaction.md +0 -4
- package/resource/knowledge/livekit/core-sdk/live/android/host-interaction.md +0 -10
- package/resource/knowledge/livekit/core-sdk/live/android/integration.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/flutter/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/flutter/host-interaction.md +0 -10
- package/resource/knowledge/livekit/core-sdk/live/flutter/integration.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/ios/co-guest-interaction.md +0 -4
- package/resource/knowledge/livekit/core-sdk/live/ios/host-interaction.md +0 -10
- package/resource/knowledge/livekit/core-sdk/live/ios/integration.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +0 -4
- package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +0 -4
- package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/android/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/android/host-interaction.md +0 -4
- package/resource/knowledge/livekit/core-sdk/voice/android/integration.md +0 -4
- package/resource/knowledge/livekit/core-sdk/voice/flutter/integration.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/ios/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/ios/host-interaction.md +0 -4
- package/resource/knowledge/livekit/core-sdk/voice/ios/integration.md +0 -4
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/integration.md +0 -2
- package/resource/knowledge/livekit/faq/error-code.md +0 -2
- package/resource/knowledge/push/config/android/honor.md +16 -1
- package/resource/knowledge/push/config/android/huawei.md +20 -4
- package/resource/knowledge/push/config/android/meizu.md +19 -5
- package/resource/knowledge/push/config/android/vivo.md +20 -1
- package/resource/knowledge/push/config/donut.md +0 -2
- package/resource/knowledge/push/config/harmonyos.md +21 -5
- package/resource/knowledge/push/integration/android.md +0 -5
- package/resource/knowledge/push/integration/donut.md +0 -3
- package/resource/knowledge/push/integration/flutter.md +1 -4
- package/resource/knowledge/push/integration/harmonyos.md +0 -3
- package/resource/knowledge/push/integration/ios.md +0 -3
- package/resource/knowledge/push/integration/react-native.md +0 -5
- package/resource/knowledge/push/integration/uni-app.md +0 -3
- package/resource/knowledge/push/integration/unity.md +0 -3
- package/resource/knowledge/push/integration/unreal-engine.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -3
- package/resource/knowledge/roomkit/preset/uniapp-app/integration.md +18 -14
- package/resource/knowledge/rtcengine/web/how_to_run_web_sdk_demo.md +0 -2
- package/resource/knowledge/rtcengine/web/plugin/23-advanced-support-detection.md +30 -0
- package/resource/knowledge/rtcengine/web/plugin/24-advanced-network-quality.md +0 -2
- package/resource/knowledge/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
- package/resource/knowledge/rtcengine/web/plugin/35-advanced-ai-denoiser.md +1 -1
- package/resource/knowledge/rtcengine/web/plugin/36-advanced-virtual-background.md +4 -0
- package/resource/knowledge/trtc/android/TRTCCloud.md +94 -85
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +48 -46
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +48 -48
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +18 -18
- package/resource/knowledge/trtc/android/TXDeviceManager.md +4 -4
- package/resource/knowledge/trtc/android/TXLiteAVCode.md +1 -0
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +90 -90
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +18 -18
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +9 -9
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +47 -47
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +47 -45
- package/resource/knowledge/trtc/c++/TXLiteAVCode.md +1 -0
- package/resource/knowledge/trtc/ios/TRTCCloud.md +93 -93
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +50 -50
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +8 -8
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +9 -9
- package/resource/knowledge/trtc/ios/TXLiteAVCode.md +1 -0
- package/resource/knowledge/trtc/ios/TXLiveSDKTypeDef.md +48 -46
- package/server-config.js +8 -9
- package/server.js +1 -1
- package/tools/common/finalize_answer.js +1 -1
- package/tools/common/present_framework_choice.js +1 -1
- package/tools/common/search_trtc_knowledge.js +22 -3
- package/tools/definitions/search_trtc_knowledge_def.js +3 -2
- package/utils/preflight-route.js +19 -2
- package/utils/report-cls-client.js +1 -1
- package/utils/report-es-client.js +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
|
|
1
2
|
## 浏览器环境检测
|
|
2
3
|
|
|
3
4
|
在开始音视频通话之前,建议您先使用 {@link TRTC.isSupported TRTC.isSupported} 接口检测 SDK 是否支持当前网页。如果 SDK 不支持当前浏览器,建议用户使用最新版的 Chrome 浏览器、Edge 浏览器、Safari 浏览器、Firefox 浏览器。
|
|
@@ -21,6 +22,15 @@ TRTC.isSupported().then(checkResult => {
|
|
|
21
22
|
|
|
22
23
|
## 通话前设备检测
|
|
23
24
|
|
|
25
|
+
用户的设备环境各不相同:有的电脑没有摄像头,有的使用了虚拟摄像头,有的没有授权,也有的网络质量差难以支撑完成一次高质量的通话。如果不提前检测,就只能等用户进了房才暴露成通话异常。
|
|
26
|
+
|
|
27
|
+
因此我们建议您在通话前进行设备检测,以避免用户进入房间后遇到问题。把这些问题提前到用户还能自己处理的时间点:
|
|
28
|
+
|
|
29
|
+
- 用户没有摄像头或麦克风。进房前就告知用户,而不是进了房才发现别人看不到、听不到自己。
|
|
30
|
+
- 摄像头或麦克风异常。摄像头画面预览和实时音量条可以让用户确认设备是否正常,不正常时可以切换到其他设备。
|
|
31
|
+
- 没有摄像头或麦克风权限。引导用户完成权限授予,而不是进房后碰到采集失败。
|
|
32
|
+
- 网络质量差。用户在进房前就能了解自己的网络质量,通话体验不好时也能理解是网络的原因。参见[通话前的网络质量检测](tutorial-24-advanced-network-quality.md)。
|
|
33
|
+
|
|
24
34
|
### 方案一:使用设备检测插件(包括默认 UI)
|
|
25
35
|
|
|
26
36
|
检测用户的媒体设备(摄像头、麦克风、扬声器)以及网络,建议在用户进房之前使用,支持移动端适配。
|
|
@@ -44,6 +54,26 @@ const options = {
|
|
|
44
54
|
const resultWithNetwork = await trtc.startPlugin('DeviceDetector', options);
|
|
45
55
|
```
|
|
46
56
|
|
|
57
|
+
#### 进房时使用检测通过的摄像头和麦克风
|
|
58
|
+
|
|
59
|
+
设备检测的过程也是用户挑选摄像头和麦克风的过程,进房时要沿用这个选择。采集时不传 `deviceId`,SDK 会使用系统默认设备,而默认设备不一定就是用户刚刚确认过的那一台,用户可能会用一个自己没验证过的设备发布音视频。
|
|
60
|
+
|
|
61
|
+
`trtc.startPlugin('DeviceDetector')` 的返回值就是检测结果,其中 `result.camera.device` 和 `result.microphone.device` 是用户在检测过程中看到并确认的设备,进房采集时把它们的 `deviceId` 传进去:
|
|
62
|
+
|
|
63
|
+
```javascript
|
|
64
|
+
const result = await trtc.startPlugin('DeviceDetector');
|
|
65
|
+
const cameraId = result.camera?.device?.deviceId;
|
|
66
|
+
const microphoneId = result.microphone?.device?.deviceId;
|
|
67
|
+
|
|
68
|
+
await trtc.enterRoom({ roomId, sdkAppId, userId, userSig });
|
|
69
|
+
|
|
70
|
+
// 使用用户在设备检测中确认过的摄像头和麦克风采集
|
|
71
|
+
await trtc.startLocalVideo({ option: { cameraId } });
|
|
72
|
+
await trtc.startLocalAudio({ option: { microphoneId } });
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
用户在检测中跳过或检测失败的步骤,返回结果里 `isSuccess` 为 false,`deviceId` 可能为空串。先判断 `isSuccess`,为空时不传该参数,让 SDK 使用默认设备。方案二自定义 UI 同理:从 `TRTC.getCameraList()` / `TRTC.getMicrophoneList()` 拿到 `deviceId`,或者记录用户在检测中选择的设备,用同样的方式传入。
|
|
76
|
+
|
|
47
77
|
#### API
|
|
48
78
|
|
|
49
79
|
##### trtc.startPlugin('DeviceDetector', options)
|
|
@@ -399,4 +399,4 @@ const trtc = TRTC.create({
|
|
|
399
399
|
|
|
400
400
|
- [TRTC Web SDK API 文档](https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/zh-cn/index.html)
|
|
401
401
|
- [包月套餐计费说明](https://cloud.tencent.com/document/product/647/85386)
|
|
402
|
-
- [在线 Demo 体验](https://web.sdk.qcloud.com/trtc/webrtc/demo/
|
|
402
|
+
- [在线 Demo 体验](https://web.sdk.qcloud.com/trtc/webrtc/v5/demo/samples/basic-features/quick-start/index.html)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
AI 降噪插件能够降低通话中的噪声,减少环境噪声对通话的影响。可以更好地抑制通话过程中的键盘声、碰撞声、敲击声等噪声,特别适用于对瞬时噪声敏感的场景,例如会议场景中的短时噪声。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
本文将介绍如何在开发 TRTC 应用中给本地音频流应用 AI 降噪的方法。
|
|
6
6
|
|
|
7
7
|
## 前提条件
|
|
8
8
|
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
| Web | Windows | Chrome 90+<br>Firefox 90+<br>Edge 97+ | 30 | 内存:16GB<br>CPU:i5-10500<br>GPU:独显 2GB | 建议使用最新版 Chrome 浏览器<br><b> (开启浏览器硬件加速)</b> |
|
|
14
14
|
| 15 | 内存:8GB<br>CPU:i3-8300<br>GPU:intel 核显 1GB | | | | |
|
|
15
15
|
| Mac | Chrome 98+<br>Firefox 96+<br>Safari 15+ | 30 | 2019年 MacBook<br>内存:16GB(2667MHz)<br>CPU:i7(6核 2.60GHz)<br>GPU:AMD Radeon 5300M | | |
|
|
16
|
+
| Android | Chrome 90+ | 30 | 高端机型(如高通骁龙 8 Gen1) | 建议使用最新版 Chrome 浏览器<br>(开启浏览器硬件加速)<br>建议提前使用 <code>VirtualBackground.isSupported()</code> 检测是否支持,以检测结果为准 | |
|
|
17
|
+
| 15 | 中低端机型(如联发科天玑 8000-MAX、高通骁龙 660) | | | | |
|
|
18
|
+
| iOS | Safari | 30 | iPhone 13 | 要求 iOS 16 及以上版本(含 iOS 16)<br>建议使用 Safari 浏览器<br>建议提前使用 <code>VirtualBackground.isSupported()</code> 检测是否支持,以检测结果为准 | |
|
|
19
|
+
| 15 | iPhone XR | | | | |
|
|
16
20
|
|
|
17
21
|
## 实现流程
|
|
18
22
|
|
|
@@ -4,7 +4,7 @@ Module: TRTCCloud @ TXLiteAVSDK
|
|
|
4
4
|
|
|
5
5
|
Function: 腾讯云 TRTC 主功能接口
|
|
6
6
|
|
|
7
|
-
Version: 13.
|
|
7
|
+
Version: 13.5
|
|
8
8
|
|
|
9
9
|
## TRTCCloud
|
|
10
10
|
|
|
@@ -76,6 +76,7 @@ Version: 13.4
|
|
|
76
76
|
|getAudioEffectManager|获取音效管理类(TXAudioEffectManager)。|
|
|
77
77
|
|startSystemAudioLoopback|开启系统声音采集。|
|
|
78
78
|
|stopSystemAudioLoopback|停止系统声音采集(iOS 端暂未支持)。|
|
|
79
|
+
|setSystemAudioLoopbackVolume|设置系统声音的采集音量。|
|
|
79
80
|
|getAITranscriberManager|获取 AI 转录管理类(AITranscriberManager)。|
|
|
80
81
|
|startScreenCapture|启动屏幕分享。|
|
|
81
82
|
|stopScreenCapture|停止屏幕分享。|
|
|
@@ -174,9 +175,9 @@ TRTC 的所有用户都需要进入房间才能“发布”或“订阅”音视
|
|
|
174
175
|
包括 TRTC_APP_SCENE_LIVE 和 TRTC_APP_SCENE_VOICE_CHATROOM 两个可选项,分别是视频直播和语音直播,该模式适合十万人以内的在线直播场景,但需要您在接下来介绍的 TRTCParams 参数中指定 **角色(role)** 这个字段,也就是将房间中的用户区分为 **主播** (TRTCRoleAnchor) 和 **观众** (TRTCRoleAudience) 两种不同的角色。
|
|
175
176
|
|
|
176
177
|
调用该接口后,您会收到来自 TRTCCloudListener 中的 onEnterRoom 回调:
|
|
177
|
-
-
|
|
178
|
+
- 如果进房成功,参数 `result` 会是一个正数(result > 0),表示从函数调用到进入房间所花费的时间,单位是毫秒(ms)。
|
|
178
179
|
|
|
179
|
-
-
|
|
180
|
+
- 如果进房失败,参数 `result` 会是一个负数(result < 0),表示进房失败的[错误码](https://cloud.tencent.com/document/product/647/32257)。
|
|
180
181
|
|
|
181
182
|
|参数|描述|
|
|
182
183
|
|---------|---------|
|
|
@@ -213,7 +214,7 @@ TRTC 的所有用户都需要进入房间才能“发布”或“订阅”音视
|
|
|
213
214
|
您可以在进入房间时通过 TRTCParams 中的 `role` 字段事先确定用户的角色,也可以在进入房间后通过该接口动态切换角色。
|
|
214
215
|
| 参数 | 描述 |
|
|
215
216
|
| --- | --- |
|
|
216
|
-
| role | 角色,默认为 <strong>主播</strong>。<br>-
|
|
217
|
+
| role | 角色,默认为 <strong>主播</strong>。<br>- TRTCRoleAnchor :主播,可以发布自己的音视频,同一个房间里最多支持50个主播同时发布音视频。<br>- TRTCRoleAudience :观众,不能发布自己的音视频流,只能观看房间中其他主播的音视频。如果要发布自己的音视频,需要先通过 switchRole 切换成 <strong>主播</strong>,同一个房间内同时最多可以容纳 10 万名观众。 |
|
|
217
218
|
|
|
218
219
|
> **注意**
|
|
219
220
|
>
|
|
@@ -233,8 +234,8 @@ TRTC 的所有用户都需要进入房间才能“发布”或“订阅”音视
|
|
|
233
234
|
您可以在进入房间时通过 TRTCParams 中的 `role` 字段事先确定用户的角色,也可以在进入房间后通过该接口动态切换角色。
|
|
234
235
|
| 参数 | 描述 |
|
|
235
236
|
| --- | --- |
|
|
236
|
-
| privateMapKey | 用于权限控制的权限票据,当您希望某个房间只能让特定的 userId 进入或者上行视频时,需要使用 <code>privateMapKey</code> 进行权限保护。<br>-
|
|
237
|
-
| role | 角色,默认为 <strong>主播</strong>。<br>-
|
|
237
|
+
| privateMapKey | 用于权限控制的权限票据,当您希望某个房间只能让特定的 userId 进入或者上行视频时,需要使用 <code>privateMapKey</code> 进行权限保护。<br>- 仅建议有高级别安全需求的客户使用,更多详情请参见 <a href="https://cloud.tencent.com/document/product/647/32240">开启高级权限控制</a>。 |
|
|
238
|
+
| role | 角色,默认为 <strong>主播</strong>。<br>- TRTCRoleAnchor :主播,可以发布自己的音视频,同一个房间里最多支持50个主播同时发布音视频。<br>- TRTCRoleAudience :观众,不能发布自己的音视频流,只能观看房间中其他主播的音视频。如果要发布自己的音视频,需要先通过 switchRole 切换成 <strong>主播</strong>,同一个房间内同时最多可以容纳 10 万名观众。 |
|
|
238
239
|
|
|
239
240
|
> **注意**
|
|
240
241
|
>
|
|
@@ -248,9 +249,9 @@ TRTC 的所有用户都需要进入房间才能“发布”或“订阅”音视
|
|
|
248
249
|
**切换房间。**
|
|
249
250
|
|
|
250
251
|
使用该接口可以让用户快速从一个房间切换到另一个房间。
|
|
251
|
-
-
|
|
252
|
+
- 如果用户的身份是“观众”,该接口的调用效果等同于 `exitRoom(当前房间) + enterRoom(新的房间)` 。
|
|
252
253
|
|
|
253
|
-
-
|
|
254
|
+
- 如果用户的身份是“主播”,该接口在切换房间的同时还会保持自己的音视频发布状态,因此在房间切换过程中,摄像头的预览和声音的采集都不会中断。
|
|
254
255
|
|
|
255
256
|
该接口适用于在线教育场景中,监课老师在多个房间中进行快速切换的场景。在该场景下使用 `switchRoom` 可以获得比 `exitRoom + enterRoom` 更好的流畅性和更少的代码量。
|
|
256
257
|
|
|
@@ -282,9 +283,9 @@ TRTC 的所有用户都需要进入房间才能“发布”或“订阅”音视
|
|
|
282
283
|
跨房通话的请求结果会通过 TRTCCloudListener 中的 onConnectOtherRoom 回调通知给您。
|
|
283
284
|
|
|
284
285
|
例如:当房间“101”中的主播 A 通过 `connectOtherRoom()` 跟房间“102”中的主播 B 建立跨房通话后,
|
|
285
|
-
-
|
|
286
|
+
- 房间“101”中的用户都会收到主播 B 的 `onRemoteUserEnterRoom(B)` 和 `onUserVideoAvailable(B,true)` 这两个事件回调,即房间“101”中的用户都可以订阅主播 B 的音视频。
|
|
286
287
|
|
|
287
|
-
-
|
|
288
|
+
- 房间“102”中的用户都会收到主播 A 的 `onRemoteUserEnterRoom(A)` 和 `onUserVideoAvailable(A,true)` 这两个事件回调,即房间“102”中的用户都可以订阅主播 A 的音视频。
|
|
288
289
|
|
|
289
290
|
跨房通话的参数考虑到后续扩展字段的兼容性问题,暂时采用了 JSON 格式的参数:
|
|
290
291
|
|
|
@@ -327,9 +328,9 @@ TRTC 的所有用户都需要进入房间才能“发布”或“订阅”音视
|
|
|
327
328
|
**设置订阅模式(需要在进入房前设置才能生效)。**
|
|
328
329
|
|
|
329
330
|
您可以通过该接口在“自动订阅”和“手动订阅”两种模式下进行切换:
|
|
330
|
-
-
|
|
331
|
+
- 自动订阅:默认模式,用户在进入房间后会立刻接收到该房间中的音视频流,音频会自动播放,视频会自动开始解码(依然需要您通过 startRemoteView 接口绑定渲染控件)。
|
|
331
332
|
|
|
332
|
-
-
|
|
333
|
+
- 手动订阅:在用户进入房间后,需要手动调用 startRemoteView 接口才能启动视频流的订阅和解码,需要手动调用 muteRemoteAudio (false) 接口才能启动声音的播放。
|
|
333
334
|
|
|
334
335
|
在绝大多数场景下,用户进入房间后都会订阅房间中所有主播的音视频流,因此 TRTC 默认采用了自动订阅模式,以求得最佳的“秒开体验”。
|
|
335
336
|
|
|
@@ -395,8 +396,8 @@ TRTCCloud 一开始被设计成单例模式,限制了多房间并发观看的
|
|
|
395
396
|
>
|
|
396
397
|
> 4. 同一个用户可以在多个 TRTCCloud 实例中推流,也可以调用子实例中与本地音视频相关的接口。但需要注意:
|
|
397
398
|
>
|
|
398
|
-
> -
|
|
399
|
-
> -
|
|
399
|
+
> - 多实例的音频需要同时为麦克风采集或自定义采集,而且与音频设备相关的接口调用会以最后一次为准;
|
|
400
|
+
> - 与摄像头相关的调用会以最后一次为准:startLocalPreview。
|
|
400
401
|
|
|
401
402
|
**返回值说明:**
|
|
402
403
|
|
|
@@ -427,12 +428,12 @@ TRTCCloud 一开始被设计成单例模式,限制了多房间并发观看的
|
|
|
427
428
|
例如:
|
|
428
429
|
|
|
429
430
|
房间“101”中有主播 A 与观众 B,房间“102”中有主播 C,主播 C 正常发布音视频流。主播 A 通过 connectOtherRoom 跟主播 C 建立跨房通话。
|
|
430
|
-
-
|
|
431
|
+
- 此时,主播 A 与观众 B 都会收到主播 C 的 `onRemoteUserEnterRoom(C)` , `onUserVideoAvailable(C,true)` 和 `onUserAudioAvailable(C,true)` 这三个事件回调,可以订阅主播 C 的音视频。
|
|
431
432
|
|
|
432
433
|
之后,主播 A 调用该接口禁用主播 C 在本房间发布音频的能力。
|
|
433
|
-
-
|
|
434
|
+
- 此后,主播 C 的音频流将无法发布至房间“101”,主播 A 与观众 B 都将收到 `onUserAudioAvailable(C,false)` 事件回调,且无法再通过 `muteRemoteAudio(C,false)` 订阅主播 C 的音频。
|
|
434
435
|
|
|
435
|
-
-
|
|
436
|
+
- 主播 C 的视频流将不受影响。房间“102”中的其他观众也不受影响,可以正常订阅主播 C 的音频。
|
|
436
437
|
|
|
437
438
|
该接口的参数考虑到后续扩展字段的兼容性问题,暂时采用了 JSON 格式的参数,示例如下:
|
|
438
439
|
|
|
@@ -543,8 +544,8 @@ TRTCCloud 一开始被设计成单例模式,限制了多房间并发观看的
|
|
|
543
544
|
>
|
|
544
545
|
> 如果希望开播前预览摄像头画面并通过 BeautyManager 调节美颜参数,您可以:
|
|
545
546
|
>
|
|
546
|
-
> -
|
|
547
|
-
> -
|
|
547
|
+
> - 方案一:在调用 enterRoom 之前调用 `startLocalPreview` 。
|
|
548
|
+
> - 方案二:在调用 enterRoom 之后调用 `startLocalPreview + muteLocalVideo(true)` 。
|
|
548
549
|
|
|
549
550
|
## updateLocalView
|
|
550
551
|
|
|
@@ -591,14 +592,14 @@ TRTCCloud 一开始被设计成单例模式,限制了多房间并发观看的
|
|
|
591
592
|
**订阅远端用户的视频流,并绑定视频渲染控件。**
|
|
592
593
|
|
|
593
594
|
调用该接口可以让 SDK 拉取指定 userId 的视频流,并渲染到参数 `view` 指定的渲染控件上。您可以通过 setRemoteRenderParams 设置画面的显示模式。
|
|
594
|
-
-
|
|
595
|
+
- 如果您已经知道房间中有视频流的用户的 userId,可以直接调用 `startRemoteView` 订阅该用户的画面。
|
|
595
596
|
|
|
596
|
-
-
|
|
597
|
+
- 如果您不知道房间中有哪些用户在发布视频,您可以在 enterRoom 之后等待来自 onUserVideoAvailable 的通知。
|
|
597
598
|
|
|
598
599
|
调用本接口只是启动视频流的拉取,此时画面还需要加载和缓冲,当缓冲完毕后您会收到来自 onFirstVideoFrame 的通知。
|
|
599
600
|
| 参数 | 描述 |
|
|
600
601
|
| --- | --- |
|
|
601
|
-
| streamType | 指定要观看 userId 的视频流类型。<br>-
|
|
602
|
+
| streamType | 指定要观看 userId 的视频流类型。<br>- 高清大画面:TRTC_VIDEO_STREAM_TYPE_BIG。<br>- 低清小画面:TRTC_VIDEO_STREAM_TYPE_SMALL(需要远端用户通过 enableEncSmallVideoStream 开启双路编码后才有效果)。<br>- 辅流画面(常用于屏幕分享):TRTC_VIDEO_STREAM_TYPE_SUB。 |
|
|
602
603
|
| userId | 指定远端用户的 ID。 |
|
|
603
604
|
| view | 用于承载视频画面的渲染控件。 |
|
|
604
605
|
|
|
@@ -632,7 +633,7 @@ TRTCCloud 一开始被设计成单例模式,限制了多房间并发观看的
|
|
|
632
633
|
调用此接口会让 SDK 停止接收该用户的视频流,并释放该路视频流的解码和渲染资源。
|
|
633
634
|
| 参数 | 描述 |
|
|
634
635
|
| --- | --- |
|
|
635
|
-
| streamType | 指定要观看 userId 的视频流类型。<br>-
|
|
636
|
+
| streamType | 指定要观看 userId 的视频流类型。<br>- 高清大画面:TRTC_VIDEO_STREAM_TYPE_BIG。<br>- 低清小画面:TRTC_VIDEO_STREAM_TYPE_SMALL。<br>- 辅流画面(常用于屏幕分享):TRTC_VIDEO_STREAM_TYPE_SUB。 |
|
|
636
637
|
| userId | 指定远端用户的 ID。 |
|
|
637
638
|
|
|
638
639
|
## stopAllRemoteView
|
|
@@ -654,7 +655,7 @@ TRTCCloud 一开始被设计成单例模式,限制了多房间并发观看的
|
|
|
654
655
|
| 参数 | 描述 |
|
|
655
656
|
| --- | --- |
|
|
656
657
|
| mute | 是否暂停接收。 |
|
|
657
|
-
| streamType | 要暂停/恢复的视频流类型。<br>-
|
|
658
|
+
| streamType | 要暂停/恢复的视频流类型。<br>- 高清大画面:TRTC_VIDEO_STREAM_TYPE_BIG。<br>- 低清小画面:TRTC_VIDEO_STREAM_TYPE_SMALL。<br>- 辅流画面(常用于屏幕分享):TRTC_VIDEO_STREAM_TYPE_SUB。 |
|
|
658
659
|
| userId | 指定远端用户的 ID。 |
|
|
659
660
|
|
|
660
661
|
> **注意**
|
|
@@ -820,7 +821,7 @@ SDK 默认不开启麦克风,当用户需要发布本地音频时,需要调
|
|
|
820
821
|
开启本地音频的采集和发布后,房间中的其他用户会收到 onUserAudioAvailable(userId, true) 的通知。
|
|
821
822
|
| 参数 | 描述 |
|
|
822
823
|
| --- | --- |
|
|
823
|
-
| quality | 声音音质<br>-
|
|
824
|
+
| quality | 声音音质<br>- TRTC_AUDIO_QUALITY_SPEECH,流畅:单声道;音频裸码率:18kbps;适合语音通话为主的场景,例如在线会议,语音通话。<br>- TRTC_AUDIO_QUALITY_DEFAULT,默认:单声道;音频裸码率:50kbps;SDK 默认的音频质量,如无特殊需求推荐选择之。<br>- TRTC_AUDIO_QUALITY_MUSIC,高音质:双声道 + 全频带;音频裸码率:128kbps;适合需要高保真传输音乐的场景,例如在线K歌、音乐直播等。 |
|
|
824
825
|
|
|
825
826
|
> **注意**
|
|
826
827
|
>
|
|
@@ -1095,17 +1096,17 @@ SDK 默认不开启麦克风,当用户需要发布本地音频时,需要调
|
|
|
1095
1096
|
**获取美颜管理类(TXBeautyManager)。**
|
|
1096
1097
|
|
|
1097
1098
|
通过美颜管理,您可以使用以下功能:
|
|
1098
|
-
-
|
|
1099
|
+
- 设置“磨皮”、“美白”、“红润”等美颜特效。
|
|
1099
1100
|
|
|
1100
|
-
-
|
|
1101
|
+
- 以下功能仅iOS/Android支持:
|
|
1101
1102
|
|
|
1102
|
-
-
|
|
1103
|
+
- 设置“大眼”、“瘦脸”、“V脸”、“下巴”、“短脸”、“小鼻”、“亮眼”、“白牙”、“祛眼袋”、“祛皱纹”、“祛法令纹”等修脸特效。
|
|
1103
1104
|
|
|
1104
|
-
-
|
|
1105
|
+
- 设置“发际线”、“眼间距”、“眼角”、“嘴形”、“鼻翼”、“鼻子位置”、“嘴唇厚度”、“脸型”等修脸特效。
|
|
1105
1106
|
|
|
1106
|
-
-
|
|
1107
|
+
- 设置“眼影”、“腮红”等美妆特效。
|
|
1107
1108
|
|
|
1108
|
-
-
|
|
1109
|
+
- 设置动态贴纸和人脸挂件等动画特效。
|
|
1109
1110
|
**返回值说明:**
|
|
1110
1111
|
|
|
1111
1112
|
美颜管理类 TXBeautyManager。
|
|
@@ -1115,13 +1116,13 @@ SDK 默认不开启麦克风,当用户需要发布本地音频时,需要调
|
|
|
1115
1116
|
**添加水印。**
|
|
1116
1117
|
|
|
1117
1118
|
水印的位置是通过 rect 参数来指定的,rect 是一个四元组参数,其格式为 (x,y,width,height)
|
|
1118
|
-
-
|
|
1119
|
+
- x:水印的坐标,取值范围为 [0, 1] 的浮点数。
|
|
1119
1120
|
|
|
1120
|
-
-
|
|
1121
|
+
- y:水印的坐标,取值范围为 [0, 1] 的浮点数。
|
|
1121
1122
|
|
|
1122
|
-
-
|
|
1123
|
+
- width:水印的宽度,取值范围为 [0, 1] 的浮点数。
|
|
1123
1124
|
|
|
1124
|
-
-
|
|
1125
|
+
- height:是不用设置的,SDK 内部会根据水印图片的宽高比自动计算一个合适的高度。
|
|
1125
1126
|
|
|
1126
1127
|
参数设置举例:
|
|
1127
1128
|
|
|
@@ -1145,15 +1146,15 @@ SDK 默认不开启麦克风,当用户需要发布本地音频时,需要调
|
|
|
1145
1146
|
**获取音效管理类(TXAudioEffectManager)。**
|
|
1146
1147
|
|
|
1147
1148
|
TXAudioEffectManager 是音效管理接口,您可以通过该接口实现如下功能:
|
|
1148
|
-
-
|
|
1149
|
+
- 背景音乐:支持在线音乐和本地音乐,支持变速、变调等特效、支持原生和伴奏并播放和循环播放。
|
|
1149
1150
|
|
|
1150
|
-
-
|
|
1151
|
+
- 耳机耳返:麦克风捕捉的声音实时通过耳机播放,常用于音乐直播。
|
|
1151
1152
|
|
|
1152
|
-
-
|
|
1153
|
+
- 混响效果:KTV、小房间、大会堂、低沉、洪亮等。
|
|
1153
1154
|
|
|
1154
|
-
-
|
|
1155
|
+
- 变声特效:萝莉、大叔、重金属等。
|
|
1155
1156
|
|
|
1156
|
-
-
|
|
1157
|
+
- 短音效:鼓掌声、欢笑声等简短的音效文件(对于小于10秒的文件,请将 isShortFile 参数设置为 true)。
|
|
1157
1158
|
**返回值说明:**
|
|
1158
1159
|
|
|
1159
1160
|
音效管理类 TXAudioEffectManager。
|
|
@@ -1183,6 +1184,14 @@ TXAudioEffectManager 是音效管理接口,您可以通过该接口实现如
|
|
|
1183
1184
|
|
|
1184
1185
|
**停止系统声音采集(iOS 端暂未支持)。**
|
|
1185
1186
|
|
|
1187
|
+
## setSystemAudioLoopbackVolume
|
|
1188
|
+
|
|
1189
|
+
**设置系统声音的采集音量。**
|
|
1190
|
+
|
|
1191
|
+
|参数|描述|
|
|
1192
|
+
|---------|---------|
|
|
1193
|
+
|volume|设置的音量大小,范围是:[0, 150],默认值为 100。|
|
|
1194
|
+
|
|
1186
1195
|
## getAITranscriberManager
|
|
1187
1196
|
|
|
1188
1197
|
**获取 AI 转录管理类(AITranscriberManager)。**
|
|
@@ -1200,13 +1209,13 @@ AI 转录管理类 AITranscriberManager。
|
|
|
1200
1209
|
参考文档:[实时屏幕分享(Android)](https://cloud.tencent.com/document/product/647/45751)
|
|
1201
1210
|
|
|
1202
1211
|
Android 推荐的屏幕分享视频编码参数(TRTCVideoEncParam):
|
|
1203
|
-
-
|
|
1212
|
+
- 分辨率(videoResolution):1280×720。
|
|
1204
1213
|
|
|
1205
|
-
-
|
|
1214
|
+
- 帧率(videoFps):10 FPS。
|
|
1206
1215
|
|
|
1207
|
-
-
|
|
1216
|
+
- 码率(videoBitrate):1200 kbps。
|
|
1208
1217
|
|
|
1209
|
-
-
|
|
1218
|
+
- 分辨率自适应(enableAdjustRes):false。
|
|
1210
1219
|
|
|
1211
1220
|
#### [REMARK]
|
|
1212
1221
|
|
|
@@ -1251,9 +1260,9 @@ Android 推荐的屏幕分享视频编码参数(TRTCVideoEncParam):
|
|
|
1251
1260
|
该接口可以设定远端用户所看到的屏幕分享(即辅路)的画面质量,同时也能决定云端录制出的视频文件中屏幕分享的画面质量。
|
|
1252
1261
|
|
|
1253
1262
|
请注意如下两个接口的差异:
|
|
1254
|
-
-
|
|
1263
|
+
- setVideoEncoderParam 用于设置主路画面(TRTC_VIDEO_STREAM_TYPE_BIG,一般用于摄像头)的视频编码参数。
|
|
1255
1264
|
|
|
1256
|
-
-
|
|
1265
|
+
- setSubStreamEncoderParam 用于设置辅路画面(TRTC_VIDEO_STREAM_TYPE_SUB,一般用于屏幕分享)的视频编码参数。
|
|
1257
1266
|
|
|
1258
1267
|
|参数|描述|
|
|
1259
1268
|
|---------|---------|
|
|
@@ -1279,9 +1288,9 @@ Android 推荐的屏幕分享视频编码参数(TRTCVideoEncParam):
|
|
|
1279
1288
|
使用此接口可以向 SDK 投送自己采集的视频帧,SDK 会将视频帧进行编码并通过自身的网络模块传输出去。
|
|
1280
1289
|
|
|
1281
1290
|
Android 平台有两种投送方案:
|
|
1282
|
-
-
|
|
1291
|
+
- 内存传递方案:对接起来比较简单,但是性能较差,不适合分辨率较高的场景。
|
|
1283
1292
|
|
|
1284
|
-
-
|
|
1293
|
+
- 显存传递方案:对接需要一定的 OpenGL 基础,但是性能较好,640 × 360 以上的分辨率请采用该方案。
|
|
1285
1294
|
|
|
1286
1295
|
参考文档:[自定义采集和渲染](https://cloud.tencent.com/document/product/647/34066)。
|
|
1287
1296
|
|
|
@@ -1321,15 +1330,15 @@ Android 平台有两种投送方案:
|
|
|
1321
1330
|
**向 SDK 投送自己采集的音频数据。**
|
|
1322
1331
|
|
|
1323
1332
|
参数 TRTCAudioFrame 推荐下列填写方式(其他字段不需要填写):
|
|
1324
|
-
-
|
|
1333
|
+
- audioFormat:音频数据格式,仅支持 TRTCAudioFrameFormatPCM。
|
|
1325
1334
|
|
|
1326
|
-
-
|
|
1335
|
+
- data:音频帧 buffer。音频帧数据只支持 PCM 格式,支持 5-100 ms 帧长,推荐使用 20ms 帧长,长度计算方法:48000采样率,单声道的帧长度: `48000 × 0.02s × 1 × 16bit = 15360bit = 1920字节` 。
|
|
1327
1336
|
|
|
1328
|
-
-
|
|
1337
|
+
- sampleRate:采样率,支持:16000、24000、32000、44100、48000。
|
|
1329
1338
|
|
|
1330
|
-
-
|
|
1339
|
+
- channel:声道数(如果是立体声,数据是交叉的),单声道:1; 双声道:2。
|
|
1331
1340
|
|
|
1332
|
-
-
|
|
1341
|
+
- timestamp:时间戳,单位为毫秒(ms),请使用音频帧在采集时被记录下来的时间戳(可以在采集到一帧音频帧之后,通过调用 generateCustomPTS 获取时间戳)。
|
|
1333
1342
|
|
|
1334
1343
|
参考文档:[自定义采集和渲染](https://cloud.tencent.com/document/product/647/74692)。
|
|
1335
1344
|
|
|
@@ -1373,13 +1382,13 @@ Android 平台有两种投送方案:
|
|
|
1373
1382
|
当您调用该接口后,如果发现返回值大于 100ms,则可以等待一帧音频帧的播放时间之后再次调用;如果返回值小于 100ms,则代表缓冲区比较小,您可以再次混入一些音轨数据以确保音轨缓冲区的大小维持在“安全水位”以上。
|
|
1374
1383
|
|
|
1375
1384
|
参数 TRTCAudioFrame 推荐下列填写方式(其他字段不需要填写):
|
|
1376
|
-
-
|
|
1385
|
+
- data:音频帧 buffer。音频帧数据只支持 PCM 格式,支持 5ms - 100ms 帧长,推荐使用 20ms 帧长,长度计算方法:48000采样率, 单声道的帧长度: `48000 × 0.02s × 1 × 16bit = 15360bit = 1920字节` 。
|
|
1377
1386
|
|
|
1378
|
-
-
|
|
1387
|
+
- sampleRate:采样率,支持:16000、24000、32000、44100、48000。
|
|
1379
1388
|
|
|
1380
|
-
-
|
|
1389
|
+
- channel:声道数(如果是立体声,数据是交叉的),单声道:1; 双声道:2。
|
|
1381
1390
|
|
|
1382
|
-
-
|
|
1391
|
+
- timestamp:时间戳,单位为毫秒(ms),请使用音频帧在采集时被记录下来的时间戳(可以在获得一帧音频帧之后,通过调用 generateCustomPTS 获得时间戳)。
|
|
1383
1392
|
|
|
1384
1393
|
|参数|描述|
|
|
1385
1394
|
|---------|---------|
|
|
@@ -1426,9 +1435,9 @@ Android 平台有两种投送方案:
|
|
|
1426
1435
|
设置该回调之后,SDK 会把采集到的视频帧通过您设置的 listener 回调出来,用于第三方美颜组件进行二次处理,之后 SDK 会将处理后的视频帧进行编码和发送。
|
|
1427
1436
|
| 参数 | 描述 |
|
|
1428
1437
|
| --- | --- |
|
|
1429
|
-
| bufferType | 指定回调的数据格式,目前支持:<br>-
|
|
1438
|
+
| bufferType | 指定回调的数据格式,目前支持:<br>- TRTC_VIDEO_BUFFER_TYPE_TEXTURE:适用于 pixelFormat 被设置为 TRTC_VIDEO_PIXEL_FORMAT_Texture_2D 时。<br>- TRTC_VIDEO_BUFFER_TYPE_BYTE_BUFFER:适用于 pixelFormat 被设置为 TRTC_VIDEO_PIXEL_FORMAT_I420 时。<br>- TRTC_VIDEO_BUFFER_TYPE_BYTE_ARRAY:适用于 pixelFormat 被设置为 TRTC_VIDEO_PIXEL_FORMAT_I420 时。 |
|
|
1430
1439
|
| listener | 自定义预处理回调。 |
|
|
1431
|
-
| pixelFormat | 指定回调的像素格式,目前支持:<br>-
|
|
1440
|
+
| pixelFormat | 指定回调的像素格式,目前支持:<br>- TRTC_VIDEO_PIXEL_FORMAT_Texture_2D: 显存纹理方案。<br>- TRTC_VIDEO_PIXEL_FORMAT_I420:内存数据方案。 |
|
|
1432
1441
|
**返回值说明:**
|
|
1433
1442
|
|
|
1434
1443
|
0:成功;< 0:错误(详见 [错误码](https://cloud.tencent.com/document/product/647/38307))。
|
|
@@ -1438,16 +1447,16 @@ Android 平台有两种投送方案:
|
|
|
1438
1447
|
**设置本地视频自定义渲染回调。**
|
|
1439
1448
|
|
|
1440
1449
|
设置该回调之后,SDK 内部会跳过原来的渲染流程,并把采集到的数据回调出来,您需要自己完成画面渲染。
|
|
1441
|
-
-
|
|
1450
|
+
- pixelFormat 指定回调的数据格式,目前支持 Texture2D、I420 和 RGBA 三种格式。
|
|
1442
1451
|
|
|
1443
|
-
-
|
|
1452
|
+
- bufferType 指定 buffer 的类型,BYTE_BUFFER 适合在 jni 层使用,BYTE_ARRAY 则可用于 Java 层的直接操作。
|
|
1444
1453
|
|
|
1445
1454
|
参考文档:[自定义采集和渲染](https://cloud.tencent.com/document/product/647/34066)。
|
|
1446
1455
|
| 参数 | 描述 |
|
|
1447
1456
|
| --- | --- |
|
|
1448
|
-
| bufferType | 指定视频帧的数据结构:<br>-
|
|
1457
|
+
| bufferType | 指定视频帧的数据结构:<br>- TRTC_VIDEO_BUFFER_TYPE_TEXTURE:适用于 pixelFormat 被设置为 TRTC_VIDEO_PIXEL_FORMAT_Texture_2D 时。<br>- TRTC_VIDEO_BUFFER_TYPE_BYTE_BUFFER:适用于 pixelFormat 被设置为 TRTC_VIDEO_PIXEL_FORMAT_I420 和 TRTC_VIDEO_PIXEL_FORMAT_RGBA 时。<br>- TRTC_VIDEO_BUFFER_TYPE_BYTE_ARRAY:适用于 pixelFormat 被设置为 TRTC_VIDEO_PIXEL_FORMAT_I420 和 TRTC_VIDEO_PIXEL_FORMAT_RGBA 时。 |
|
|
1449
1458
|
| listener | 自定义视频渲染回调,每一帧视频数据回调一次。 |
|
|
1450
|
-
| pixelFormat | 指定视频帧的像素格式,如:<br>-
|
|
1459
|
+
| pixelFormat | 指定视频帧的像素格式,如:<br>- TRTC_VIDEO_PIXEL_FORMAT_Texture_2D:OpenGL 纹理格式,比较适合 GPU 进行处理,处理效率高。<br>- TRTC_VIDEO_PIXEL_FORMAT_I420:标准 i420 格式,比较适合 CPU 进行处理,处理效率较差。<br>- TRTC_VIDEO_PIXEL_FORMAT_RGBA:RGBA 格式,比较适合 CPU 进行处理,处理效率较差。 |
|
|
1451
1460
|
**返回值说明:**
|
|
1452
1461
|
|
|
1453
1462
|
0:成功;< 0:错误。
|
|
@@ -1457,9 +1466,9 @@ Android 平台有两种投送方案:
|
|
|
1457
1466
|
**设置远端视频自定义渲染回调。**
|
|
1458
1467
|
|
|
1459
1468
|
设置该回调之后,SDK 内部会跳过原来的渲染流程,并把采集到的数据回调出来,您需要自己完成画面渲染。
|
|
1460
|
-
-
|
|
1469
|
+
- pixelFormat 指定回调的数据格式,例如 NV12、i420 以及 32BGRA。
|
|
1461
1470
|
|
|
1462
|
-
-
|
|
1471
|
+
- bufferType 指定 buffer 的类型,直接使用 PixelBuffer 效率最高;使用 NSData 相当于让 SDK 在内部做了一次内存转换,因此会有额外的性能损耗。
|
|
1463
1472
|
|
|
1464
1473
|
参考文档:[自定义采集和渲染](https://cloud.tencent.com/document/product/647/34066)。
|
|
1465
1474
|
|
|
@@ -1484,13 +1493,13 @@ Android 平台有两种投送方案:
|
|
|
1484
1493
|
**设置音频数据自定义回调。**
|
|
1485
1494
|
|
|
1486
1495
|
设置该回调之后,SDK 内部会把音频数据(PCM 格式)回调出来,包括:
|
|
1487
|
-
-
|
|
1496
|
+
- onCapturedAudioFrame:本地麦克风采集到的音频数据回调
|
|
1488
1497
|
|
|
1489
|
-
-
|
|
1498
|
+
- onLocalProcessedAudioFrame:本地采集并经过音频模块前处理后的音频数据回调
|
|
1490
1499
|
|
|
1491
|
-
-
|
|
1500
|
+
- onRemoteUserAudioFrame:混音前的每一路远程用户的音频数据
|
|
1492
1501
|
|
|
1493
|
-
-
|
|
1502
|
+
- onMixedPlayAudioFrame:将各路音频混合之后并最终要由系统播放出的音频数据回调
|
|
1494
1503
|
|
|
1495
1504
|
> **注意**
|
|
1496
1505
|
>
|
|
@@ -1502,11 +1511,11 @@ Android 平台有两种投送方案:
|
|
|
1502
1511
|
**设置本地麦克风采集出的音频帧回调格式。**
|
|
1503
1512
|
|
|
1504
1513
|
本接口用于设置 onCapturedAudioFrame 回调出来的 AudioFrame 的格式:
|
|
1505
|
-
-
|
|
1514
|
+
- sampleRate:采样率,支持:16000、32000、44100、48000。
|
|
1506
1515
|
|
|
1507
|
-
-
|
|
1516
|
+
- channel:声道数(如果是立体声,数据是交叉的),单声道:1; 双声道:2。
|
|
1508
1517
|
|
|
1509
|
-
-
|
|
1518
|
+
- samplesPerCall:采样点数,定义回调数据帧长。帧长必须为 10ms 的整数倍。
|
|
1510
1519
|
|
|
1511
1520
|
如果希望用毫秒数计算回调帧长,则将毫秒数转换成采样点数的公式为: `采样点数 = 毫秒数 * 采样率 / 1000` 。
|
|
1512
1521
|
|
|
@@ -1530,11 +1539,11 @@ Android 平台有两种投送方案:
|
|
|
1530
1539
|
**设置经过前处理后的本地音频帧回调格式。**
|
|
1531
1540
|
|
|
1532
1541
|
本接口用于设置 onLocalProcessedAudioFrame 回调出来的 AudioFrame 的格式:
|
|
1533
|
-
-
|
|
1542
|
+
- sampleRate:采样率,支持:16000、32000、44100、48000。
|
|
1534
1543
|
|
|
1535
|
-
-
|
|
1544
|
+
- channel:声道数(如果是立体声,数据是交叉的),单声道:1; 双声道:2。
|
|
1536
1545
|
|
|
1537
|
-
-
|
|
1546
|
+
- samplesPerCall:采样点数,定义回调数据帧长。帧长必须为 10ms 的整数倍。
|
|
1538
1547
|
|
|
1539
1548
|
如果希望用毫秒数计算回调帧长,则将毫秒数转换成采样点数的公式为: `采样点数 = 毫秒数 * 采样率 / 1000` 。
|
|
1540
1549
|
|
|
@@ -1558,11 +1567,11 @@ Android 平台有两种投送方案:
|
|
|
1558
1567
|
**设置最终要由系统播放出的音频帧回调格式。**
|
|
1559
1568
|
|
|
1560
1569
|
本接口用于设置 onMixedPlayAudioFrame 回调出来的 AudioFrame 的格式:
|
|
1561
|
-
-
|
|
1570
|
+
- sampleRate:采样率,支持:16000、32000、44100、48000。
|
|
1562
1571
|
|
|
1563
|
-
-
|
|
1572
|
+
- channel:声道数(如果是立体声,数据是交叉的),单声道:1; 双声道:2。
|
|
1564
1573
|
|
|
1565
|
-
-
|
|
1574
|
+
- samplesPerCall:采样点数,定义回调数据帧长。帧长必须为 10ms 的整数倍。
|
|
1566
1575
|
|
|
1567
1576
|
如果希望用毫秒数计算回调帧长,则将毫秒数转换成采样点数的公式为: `采样点数 = 毫秒数 * 采样率 / 1000` 。
|
|
1568
1577
|
|
|
@@ -1605,11 +1614,11 @@ Android 平台有两种投送方案:
|
|
|
1605
1614
|
调用该接口之前,您需要先通过 enableCustomAudioRendering 开启音频自定义播放。
|
|
1606
1615
|
|
|
1607
1616
|
参数 TRTCAudioFrame 推荐下列填写方式(其他字段不需要填写):
|
|
1608
|
-
-
|
|
1617
|
+
- sampleRate:采样率,必填,支持 16000、24000、32000、44100、48000。
|
|
1609
1618
|
|
|
1610
|
-
-
|
|
1619
|
+
- channel:声道数,必填,单声道请填1,双声道请填2,双声道时数据是交叉的。
|
|
1611
1620
|
|
|
1612
|
-
-
|
|
1621
|
+
- data:用于获取音频数据的 buffer。需要您根据一帧音频帧的帧长度分配好 data 的内存大小。获取的 PCM 数据支持 10ms 或 20ms 两种帧长,推荐使用 20ms 的帧长。
|
|
1613
1622
|
|
|
1614
1623
|
计算公式为: `采样率 x 播放时长 x 声道数量 x 2(每个样点的字节数)` , 例如: 48000Hz 采样率、单声道、且播放时长为 20ms 的一帧音频帧的 buffer 大小为 `48000 × 0.02s × 1 × 16bit = 15360bit = 1920字节` 。
|
|
1615
1624
|
|
|
@@ -1710,7 +1719,7 @@ true:消息已通过限制,等待后续视频帧发送;false:消息被
|
|
|
1710
1719
|
|
|
1711
1720
|
> **注意**
|
|
1712
1721
|
>
|
|
1713
|
-
> 1. 测速过程将产生少量的基础服务费用,详见 [计费概述 > 基础服务](https://cloud.tencent.com/document/product/647/17157
|
|
1722
|
+
> 1. 测速过程将产生少量的基础服务费用,详见 [计费概述 > 基础服务](https://cloud.tencent.com/document/product/647/17157) 文档说明。
|
|
1714
1723
|
>
|
|
1715
1724
|
> 2. 请在进入房间前进行网速测试,在房间中网速测试会影响正常的音视频传输效果,而且由于干扰过多,网速测试结果也不准确。
|
|
1716
1725
|
>
|
|
@@ -1762,11 +1771,11 @@ true:消息已通过限制,等待后续视频帧发送;false:消息被
|
|
|
1762
1771
|
**设置本地日志的保存路径。**
|
|
1763
1772
|
|
|
1764
1773
|
通过该接口您可以更改 SDK 本地日志的默认存储路径,SDK 默认的本地日志的存储位置:
|
|
1765
|
-
-
|
|
1774
|
+
- Windows 平台:在 C:/Users/[系统用户名]/AppData/Roaming/liteav/log,即 %appdata%/liteav/log 下。
|
|
1766
1775
|
|
|
1767
|
-
-
|
|
1776
|
+
- iOS 或 Mac 平台:在 sandbox Documents/log 下。
|
|
1768
1777
|
|
|
1769
|
-
-
|
|
1778
|
+
- Android 平台:在 /app私有目录/files/log/liteav/ 下。
|
|
1770
1779
|
|
|
1771
1780
|
|参数|描述|
|
|
1772
1781
|
|---------|---------|
|