本文档主要介绍主播如何发布自己的音视频流,所谓“发布”,也就是打开麦克风和摄像头,让自己的声音和视频能够被房间中其他用户听到和看到的意思。
请参考文档 导入 SDK 到项目中 完成 SDK 的导入和配置。
您可以调用 startLocalPreview 接口打开摄像头预览,此时 SDK 会向系统申请摄像头的使用权限,需要用户授权通过后才会开启摄像头的采集流程。
如果您希望设置本地画面的渲染参数,可以通过调用 setLocalRenderParams 接口来设置本地预览的渲染参数。为防止先开启预览再设置预览参数会出现画面跳动,如果您需要设置预览参数,推荐在开启预览之前调用。
// 设置本地画面的预览模式:开启左右镜像,设置画面为填充模式
import TRTCCloud, {
TRTCRenderParams, TRTCVideoRotation,
TRTCVideoFillMode, TRTCVideoMirrorType
} from 'trtc-electron-sdk';
const param = new TRTCRenderParams(
TRTCVideoRotation.TRTCVideoRotation0,
TRTCVideoFillMode.TRTCVideoFillMode_Fill,
TRTCVideoMirrorType.TRTCVideoMirrorType_Auto
);
const rtcCloud = new TRTCCloud();
rtcCloud.setLocalRenderParams(param);
const cameraVideoDom = document.querySelector('.camera-dom');
rtcCloud.startLocalPreview(cameraVideoDom);
您可以调用 startLocalAudio 来开启麦克风采集,该接口需要您通过 quality
参数确定采集模式。虽然这个参数的名字叫做 quality,但并不是说质量越高越高,不同的业务场景有最适合的参数选择(这个参数更准确的含义是 scene)。
import { TRTCAudioQuality } from 'trtc-electron-sdk';
// 开启麦克风采集,并设置当前场景为:语音模式(高噪声抑制能力、强弱网络抗性)
rtcCloud.startLocalAudio(TRTCAudioQuality.TRTCAudioQualitySpeech);
// 开启麦克风采集,并设置当前场景为:音乐模式(高保真采集、低音质损失,推荐配合专业声卡使用)
rtcCloud.startLocalAudio(TRTCAudioQuality.TRTCAudioQualityMusic);
参考文档 进入房间 让当前用户进入 TRTC 房间。一旦进入房间后,SDK 便会开始向房间中的其他用户发布自己的音频流。
注意:当然,您可以在进入房间(enterRoom)后再启动摄像头预览和麦克风采集,不过在直播场景下,我们需要先给主播一个测试麦克风和调整美颜的时间,所以更常见的做法是先启动摄像头和麦克风再进入房间。
import { TRTCParams, TRTCRoleType, TRTCAppScene } from 'trtc-electron-sdk';
// 组装 TRTC 进房参数,请将 TRTCParams 中的各字段都替换成您自己的参数
// Please replace each field in TRTCParams with your own parameters
const param = new TRTCParams();
params.sdkAppId = 1400000123; // Please replace with your own SDKAppID
params.userId = "denny"; // Please replace with your own userid
params.roomId = 123321; // Please replace with your own room number
params.userSig = "xxx"; // Please replace with your own userSig
params.role = TRTCRoleType.TRTCRoleAnchor;
// 如果您的场景是“在线直播”,请将应用场景设置为 TRTC_APP_SCENE_LIVE
// If your application scenario is a video call between several people, please use "TRTC_APP_SCENE_LIVE"
rtcCloud.enterRoom(param, TRTCAppScene.TRTCAppSceneLIVE);
本页内容是否解决了您的问题?