private void Screen_Loaded(object sender, RoutedEventArgs e)
        {
            trtcCloud = ITRTCCloud.getTRTCShareInstance();
            Log.I(String.Format(" SDKVersion : {0}", trtcCloud.getSDKVersion()));
            trtcCloud.addCallback(this);

            TRTCParams trtcParams = new TRTCParams();

            trtcParams.sdkAppId      = GenerateTestUserSig.SDKAPPID;
            trtcParams.roomId        = (uint)m_nPeerMachineGUID;
            trtcParams.userId        = $"ctrl_{m_nMachineGUID}";
            trtcParams.userSig       = GenerateTestUserSig.GetInstance().GenTestUserSig(trtcParams.userId);
            trtcParams.privateMapKey = "";
            trtcParams.businessInfo  = "";
            trtcParams.role          = TRTCRoleType.TRTCRoleAnchor;

            TRTCVideoEncParam   encParams = DataManager.GetInstance().videoEncParams; // 视频编码参数设置
            TRTCNetworkQosParam qosParams = DataManager.GetInstance().qosParams;      // 网络流控相关参数设置

            trtcCloud.setVideoEncoderParam(ref encParams);
            trtcCloud.setNetworkQosParam(ref qosParams);

            // 用户进房
            trtcCloud.enterRoom(ref trtcParams, TRTCAppScene.TRTCAppSceneVideoCall);
        }
Пример #2
0
        private void EnterSelfRoom()
        {
            if (trtcCloud == null)
            {
                trtcCloud = ITRTCCloud.getTRTCShareInstance();
                Log.I(String.Format(" SDKVersion : {0}", trtcCloud.getSDKVersion()));
                trtcCloud.addCallback(this);

                TRTCParams trtcParams = new TRTCParams();
                trtcParams.sdkAppId      = GenerateTestUserSig.SDKAPPID;
                trtcParams.roomId        = (uint)m_nMachineGUID;
                trtcParams.userId        = "source";
                trtcParams.userSig       = GenerateTestUserSig.GetInstance().GenTestUserSig(trtcParams.userId);
                trtcParams.privateMapKey = "";
                trtcParams.businessInfo  = "";
                trtcParams.role          = TRTCRoleType.TRTCRoleAnchor;

                //trtcCloud.setVideoEncoderParam();

                // 用户进房
                TRTCVideoEncParam   encParams = DataManager.GetInstance().videoEncParams; // 视频编码参数设置
                TRTCNetworkQosParam qosParams = DataManager.GetInstance().qosParams;      // 网络流控相关参数设置
                trtcCloud.setVideoEncoderParam(ref encParams);
                trtcCloud.setSubStreamEncoderParam(ref encParams);
                trtcCloud.setNetworkQosParam(ref qosParams);

                trtcCloud.enterRoom(ref trtcParams, TRTCAppScene.TRTCAppSceneVideoCall);
            }
        }
Пример #3
0
        private void OnJoinRoomBtnClick(object sender, EventArgs e)
        {
            SetTestEnv();

            string userId = this.userTextBox.Text;
            string roomId = this.roomTextBox.Text;

            if (string.IsNullOrEmpty(userId) || string.IsNullOrEmpty(roomId))
            {
                ShowMessage("房间号或用户号不能为空!");
                return;
            }
            int room = int.Parse(roomId);
            // 从本地计算获取 userId 对应的 userSig
            string userSig = GenerateTestUserSig.GetInstance().GenTestUserSig(userId);

            if (string.IsNullOrEmpty(userSig))
            {
                ShowMessage("userSig 获取失败,请检查是否填写账号信息!");
                return;
            }

            TRTCParams trtcParams = new TRTCParams();

            trtcParams.sdkAppId      = GenerateTestUserSig.SDKAPPID;
            trtcParams.roomId        = (uint)room;
            trtcParams.userId        = userId;
            trtcParams.userSig       = userSig;
            trtcParams.privateMapKey = "";
            trtcParams.businessInfo  = "";
            trtcParams.role          = TRTCRoleType.TRTCRoleAnchor;

            this.Hide();
            TRTCMainForm mainForm = new TRTCMainForm(this);

            mainForm.Show();
            SaveUserInfo();
            mainForm.SetTestEnv(mTestEnv);
            mainForm.EnterRoom(trtcParams);
        }
Пример #4
0
        public void EnterRoom()
        {
            // 设置进房所需的相关参数
            TRTCParams trtcParams = new TRTCParams();

            trtcParams.sdkAppId = GenerateTestUserSig.SDKAPPID;
            trtcParams.roomId   = DataManager.GetInstance().roomId;
            trtcParams.userId   = DataManager.GetInstance().userId;
            trtcParams.userSig  = GenerateTestUserSig.GetInstance().GenTestUserSig(DataManager.GetInstance().userId);
            // 如果您有进房权限保护的需求,则参考文档{https://cloud.tencent.com/document/product/647/32240}完成该功能。
            // 在有权限进房的用户中的下面字段中添加在服务器获取到的privateMapKey。
            trtcParams.privateMapKey = "";
            trtcParams.businessInfo  = "";
            trtcParams.role          = DataManager.GetInstance().roleType;
            // 若您的项目有纯音频的旁路直播需求,请配置参数。
            // 配置该参数后,音频达到服务器,即开始自动旁路;
            // 否则无此参数,旁路在收到第一个视频帧之前,会将收到的音频包丢弃。
            if (DataManager.GetInstance().pureAudioStyle)
            {
                trtcParams.businessInfo = "{\"Str_uc_params\":{\"pure_audio_push_mod\": 1}}";
            }
            else
            {
                trtcParams.businessInfo = "";
            }

            // 用户进房
            mTRTCCloud.enterRoom(ref trtcParams, DataManager.GetInstance().appScene);

            // 设置默认参数配置
            TRTCVideoEncParam   encParams = DataManager.GetInstance().videoEncParams; // 视频编码参数设置
            TRTCNetworkQosParam qosParams = DataManager.GetInstance().qosParams;      // 网络流控相关参数设置

            mTRTCCloud.setVideoEncoderParam(ref encParams);
            mTRTCCloud.setNetworkQosParam(ref qosParams);
            mTRTCCloud.setLocalViewFillMode(DataManager.GetInstance().videoFillMode);
            mTRTCCloud.setLocalViewMirror(DataManager.GetInstance().isLocalVideoMirror);
            mTRTCCloud.setLocalViewRotation(DataManager.GetInstance().videoRotation);
            mTRTCCloud.setVideoEncoderMirror(DataManager.GetInstance().isRemoteVideoMirror);

            // 设置美颜
            if (DataManager.GetInstance().isOpenBeauty)
            {
                mTRTCCloud.setBeautyStyle(DataManager.GetInstance().beautyStyle, DataManager.GetInstance().beauty,
                                          DataManager.GetInstance().white, DataManager.GetInstance().ruddiness);
            }

            // 设置大小流
            if (DataManager.GetInstance().pushSmallVideo)
            {
                TRTCVideoEncParam param = new TRTCVideoEncParam
                {
                    videoFps        = 15,
                    videoBitrate    = 100,
                    videoResolution = TRTCVideoResolution.TRTCVideoResolution_320_240
                };
                mTRTCCloud.enableSmallVideoStream(true, ref param);
            }
            if (DataManager.GetInstance().playSmallVideo)
            {
                mTRTCCloud.setPriorRemoteVideoStreamType(TRTCVideoStreamType.TRTCVideoStreamTypeSmall);
            }
            // 房间信息
            mUserId = trtcParams.userId;
            mRoomId = trtcParams.roomId;
            this.infoLabel.Content = "房间号:" + mRoomId;

            // 本地主流自定义渲染 View 动态绑定和监听 SDK 渲染回调
            mTRTCCloud.startLocalPreview(IntPtr.Zero);
            AddCustomVideoView(this.videoContainer, mUserId, TRTCVideoStreamType.TRTCVideoStreamTypeBig, true);

            mTRTCCloud.startLocalAudio();
        }