Example #1
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);
            }
        }
        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);
        }
Example #3
0
        private DataManager()
        {
            trtcCloud = ITRTCCloud.getTRTCShareInstance();

            storage = new IniStorage(".\\TRTCDemo.ini");

            videoEncParams = new TRTCVideoEncParam();
            qosParams      = new TRTCNetworkQosParam();
        }
Example #4
0
        private void OnSaveBtnClick(object sender, EventArgs e)
        {
            PropertySaver       saver     = PropertySaver.GetInstance();
            TRTCVideoEncParam   encParams = saver.encParams;
            TRTCNetworkQosParam qosParams = saver.qosParams;
            TRTCAppScene        appScene  = saver.appScene;

            if (encParams.videoResolution != mEncParam.videoResolution || encParams.videoFps != mEncParam.videoFps || encParams.videoBitrate != mEncParam.videoBitrate)
            {
                mTRTCCloud.setVideoEncoderParam(ref mEncParam);
            }
            if (qosParams.controlMode != mQosParams.controlMode || qosParams.preference != mQosParams.preference)
            {
                mTRTCCloud.setNetworkQosParam(ref mQosParams);
            }
            bool pushSmallVideo = saver.pushSmallVideo;

            if (pushSmallVideo != mPushSmallVideo)
            {
                TRTCVideoEncParam param = new TRTCVideoEncParam()
                {
                    videoFps        = 15,
                    videoBitrate    = 100,
                    videoResolution = TRTCVideoResolution.TRTCVideoResolution_320_240
                };
                bool enable = true;
                if (mPushSmallVideo == false)
                {
                    enable = false;
                }
                mTRTCCloud.enableSmallVideoStream(enable, ref param);
            }
            bool playSmallVideo = saver.playSmallVideo;

            if (playSmallVideo != mPlaySmallVideo)
            {
                if (mPlaySmallVideo)
                {
                    mTRTCCloud.setPriorRemoteVideoStreamType(TRTCVideoStreamType.TRTCVideoStreamTypeSmall);
                }
                else
                {
                    mTRTCCloud.setPriorRemoteVideoStreamType(TRTCVideoStreamType.TRTCVideoStreamTypeBig);
                }
            }

            saver.encParams      = mEncParam;
            saver.qosParams      = mQosParams;
            saver.appScene       = mAppScene;
            saver.playSmallVideo = mPlaySmallVideo;
            saver.pushSmallVideo = mPushSmallVideo;

            PropertySaver.GetInstance().SaveProperty();

            this.Hide();
        }
Example #5
0
 private void InitData()
 {
     mQosParams = new TRTCNetworkQosParam()
     {
         preference  = DataManager.GetInstance().qosParams.preference,
         controlMode = DataManager.GetInstance().qosParams.controlMode
     };
     mAppScene       = DataManager.GetInstance().appScene;
     mPlaySmallVideo = DataManager.GetInstance().playSmallVideo;
     mPushSmallVideo = DataManager.GetInstance().pushSmallVideo;
 }
Example #6
0
        private void OnSaveBtnClick(object sender, EventArgs e)
        {
            TRTCNetworkQosParam qosParams = DataManager.GetInstance().qosParams;
            TRTCAppScene        appScene  = DataManager.GetInstance().appScene;

            if (qosParams.controlMode != mQosParams.controlMode || qosParams.preference != mQosParams.preference)
            {
                mTRTCCloud.setNetworkQosParam(ref mQosParams);
            }
            bool pushSmallVideo = DataManager.GetInstance().pushSmallVideo;

            if (pushSmallVideo != mPushSmallVideo)
            {
                TRTCVideoEncParam param = new TRTCVideoEncParam()
                {
                    videoFps        = 15,
                    videoBitrate    = 100,
                    videoResolution = TRTCVideoResolution.TRTCVideoResolution_320_240,
                    resMode         = TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape
                };
                bool enable = true;
                if (mPushSmallVideo == false)
                {
                    enable = false;
                }
                mTRTCCloud.enableSmallVideoStream(enable, ref param);
            }
            bool playSmallVideo = DataManager.GetInstance().playSmallVideo;

            if (playSmallVideo != mPlaySmallVideo)
            {
                if (mPlaySmallVideo)
                {
                    mTRTCCloud.setPriorRemoteVideoStreamType(TRTCVideoStreamType.TRTCVideoStreamTypeSmall);
                }
                else
                {
                    mTRTCCloud.setPriorRemoteVideoStreamType(TRTCVideoStreamType.TRTCVideoStreamTypeBig);
                }
            }

            DataManager.GetInstance().qosParams      = mQosParams;
            DataManager.GetInstance().appScene       = mAppScene;
            DataManager.GetInstance().playSmallVideo = mPlaySmallVideo;
            DataManager.GetInstance().pushSmallVideo = mPushSmallVideo;

            this.Close();
        }
        private void confirmBtn_Click(object sender, EventArgs e)
        {
            TRTCVideoEncParam   encParams = DataManager.GetInstance().videoEncParams;
            TRTCNetworkQosParam qosParams = DataManager.GetInstance().qosParams;
            TRTCAppScene        appScene  = DataManager.GetInstance().appScene;

            if (encParams.videoResolution != mEncParam.videoResolution || encParams.videoFps != mEncParam.videoFps ||
                encParams.videoBitrate != mEncParam.videoBitrate || encParams.resMode != mEncParam.resMode)
            {
                mTRTCCloud.setVideoEncoderParam(ref mEncParam);
            }

            DataManager.GetInstance().videoEncParams = mEncParam;

            this.Close();
        }
Example #8
0
 // 初始化SDK的local配置信息
 private void InitSDKProperty()
 {
     encParams = new TRTCVideoEncParam
     {
         videoResolution = TRTCVideoResolution.TRTCVideoResolution_640_360,
         videoFps        = 15,
         videoBitrate    = 500
     };
     qosParams = new TRTCNetworkQosParam
     {
         preference  = TRTCVideoQosPreference.TRTCVideoQosPreferenceClear,
         controlMode = TRTCQosControlMode.TRTCQosControlModeServer
     };
     appScene       = TRTCAppScene.TRTCAppSceneVideoCall;
     pushSmallVideo = false;
     playSmallVideo = false;
 }
Example #9
0
 private void InitData()
 {
     mEncParam = new TRTCVideoEncParam()
     {
         videoBitrate    = DataManager.GetInstance().videoEncParams.videoBitrate,
         videoFps        = DataManager.GetInstance().videoEncParams.videoFps,
         videoResolution = DataManager.GetInstance().videoEncParams.videoResolution,
         resMode         = DataManager.GetInstance().videoEncParams.resMode
     };
     mQosParams = new TRTCNetworkQosParam()
     {
         preference  = DataManager.GetInstance().qosParams.preference,
         controlMode = DataManager.GetInstance().qosParams.controlMode
     };
     mAppScene       = DataManager.GetInstance().appScene;
     mPlaySmallVideo = DataManager.GetInstance().playSmallVideo;
     mPushSmallVideo = DataManager.GetInstance().pushSmallVideo;
 }
Example #10
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();
        }