本文档主要介绍主播如何发布和取消发布本地音视频流。相关函数接口在 electron-sdk 2.0.7 及以上版本支持。
您可以调用 startLocalPreview 接口打开摄像头预览,此时 SDK 会打开摄像头采集,当开始本地渲染第一帧数据时会回调 first-video-frame-rendered 事件。如果您希望控制摄像头的采集参数,可以通过调用 setVideoEncoderParam 来设置采集宽、高等参数,推荐在开启预览之前调用,当然也支持动态设置摄像头采集参数。
可以通过 stopLocalPreview 停止本地视频的采集和预览。
// 设置大流推送视频编码参数 this.client.setVideoEncoderParam({ bandWidth: 500, width: 640, height: 480, frameRate: 15 }) // 打开双路流模式,设置小流视频编码参数 this.client.enableEncSmallVideoStream(true, { bandWidth: 70, width: 160, height: 120, frameRate: 15 }) // 设置编码时视频旋转180度 this.client.setVideoEncoderRotation(BRTCCloud.BRTCVideoRotation.BRTC_VIDEO_RATATION_180) // 关闭远端镜像功能 this.client.setVideoEncoderMirror(false) // 设置网络流控策略为保流畅 this.client.setNetworkQosParam({preference: BRTCCloud.BRTCVideoQosPreference.BRTC_VIDEO_QOS_PREFERENCE_SMOOTH}) // 设置网络流控策略为保清晰 //this.client.setNetworkQosParam({preference: BRTCCloud.BRTCVideoQosPreference.BRTC_VIDEO_QOS_PREFERENCE_CLEAR}) // 开启本地视频预览画面 this.client.startLocalPreview(); this.client.muteLocalVideo(false); // 开启本地视频采集和上行推流,设置音频音质为音乐高音质 //this.client.startLocalAudio(BRTCCloud.BRTCAudioQuality.BRTC_AUDIO_QUALITY_MUSIC); // 开启本地视频采集和上行推流,设置音频音质为默认音质 this.client.startLocalAudio(BRTCCloud.BRTCAudioQuality.BRTC_AUDIO_QUALITY_DEFAULT); // 开启本地视频采集和上行推流,设置音频音质为流畅音质 //this.client.startLocalAudio(BRTCCloud.BRTCAudioQuality.BRTC_AUDIO_QUALITY_SPEECH); this.client.muteLocalAudio(false); // 停止本地的视频采集和预览 this.client.stopLocalPreview() this.client.muteLocalVideo(true) this.client.stopLocalAudio() this.client.muteLocalAudio(true)
您可以调用 startLocalAudio 来开启麦克风采集和上行推流,该接口需要您通过 quality 参数确定采集模式。
可以调用 stopLocalAudio 关闭麦克风音频的采集和上行推流。
// 开启麦克风采集示例,并设置当前场景为:音乐模式(适合需要高保真传输音乐的场景) //this.client.startLocalAudio(BRTCCloud.BRTCAudioQuality.BRTC_AUDIO_QUALITY_MUSIC); // 开启麦克风采集,并设置当前场景为:默认音质,介于通话和音乐之间 this.client.startLocalAudio(BRTCCloud.BRTCAudioQuality.BRTC_AUDIO_QUALITY_DEFAULT); // 开启麦克风采集示例,并设置当前场景为:语音模式(适合语音通话为主的场景) //this.client.startLocalAudio(BRTCCloud.BRTCAudioQuality.BRTC_AUDIO_QUALITY_SPEECH); this.client.muteLocalAudio(false); this.audioOn = audioOn; // 停止本地的音频频采集和预览 this.client.stopLocalAudio() //停止发布音频流 this.client.muteLocalAudio(true)
在 BRTC 中目前存在两个角色, 主播(Anchor)和观众(Audience)。 进入房间时需要设置角色,如果没有指定角色,目前用户进房间默认都是主播。
var roomID = "123456"; var sig = "9sdw9sssq"; var userId = "111111"; this.client.enterRoom(roomId, userId, sig) this.client.on('switch-role', (code, name) => { console.log('\n 用户切换角色成功: ${name} , event: switch-role') if(this.isAnchor){ // 切换为主播后,打开音频和视频设备,开始推流 this.client.muteLocalAudio(false) this.client.muteLocalVideo(false) } } ) // 切换为主播 this.client.switchRole(BRTCCloud.BRTCRoleType.BRTC_ROLE_ANCHOR) // 切换为观众 //this.client.switchRole(BRTCCloud.BRTCRoleType.BRTC_ROLE_AUDIENCE)
发布音视频流
本文档主要介绍主播如何发布和取消发布本地音视频流。
相关函数接口在 electron-sdk 2.0.7 及以上版本支持。
摄像头视频预览和发布
您可以调用 startLocalPreview 接口打开摄像头预览,此时 SDK 会打开摄像头采集,当开始本地渲染第一帧数据时会回调 first-video-frame-rendered 事件。
如果您希望控制摄像头的采集参数,可以通过调用 setVideoEncoderParam 来设置采集宽、高等参数,推荐在开启预览之前调用,当然也支持动态设置摄像头采集参数。
可以通过 stopLocalPreview 停止本地视频的采集和预览。
麦克风音频采集和发布
您可以调用 startLocalAudio 来开启麦克风采集和上行推流,该接口需要您通过 quality 参数确定采集模式。
可以调用 stopLocalAudio 关闭麦克风音频的采集和上行推流。
角色切换后发布流
在 BRTC 中目前存在两个角色, 主播(Anchor)和观众(Audience)。 进入房间时需要设置角色,如果没有指定角色,目前用户进房间默认都是主播。