/// <summary>
 /// Starts the session.
 /// </summary>
 /// <param name="sessionId">Session identifier.</param>
 /// <param name="agoraAPI">Agora API key.</param>
 public virtual void StartSession(string sessionId, string agoraAPI, VideoAgoraProfile profile = VideoAgoraProfile.Portrait360P, bool swapWidthAndHeight = false, bool webSdkInteroperability = false)
 {
     _knownStreams.Add(_myId);
     _agoraDelegate = new AgoraRtcDelegate(this);
     _agoraEngine   = AgoraRtcEngineKit.SharedEngineWithAppIdAndDelegate(agoraAPI, _agoraDelegate);
     _agoraEngine.EnableWebSdkInteroperability(webSdkInteroperability);
     _agoraEngine.SetChannelProfile(ChannelProfile.Communication);
     _agoraEngine.EnableLocalVideo(true);
     _agoraEngine.SwitchCamera();
     _agoraEngine.EnableVideo();
     _agoraEngine.SetVideoProfile(GetVideoProfile(profile), swapWidthAndHeight);
     // if you do not specify the uid, we will generate the uid for you
     var result = _agoraEngine.JoinChannelByToken("", sessionId, null, 0, JoiningCompleted);
 }
        private VideoProfile GetVideoProfile(VideoAgoraProfile profile)
        {
            switch (profile)
            {
            case VideoAgoraProfile.Landscape1080P:
                return(VideoProfile.Landscape1080P);

            case VideoAgoraProfile.Landscape720P:
                return(VideoProfile.Landscape720P);

            case VideoAgoraProfile.Landscape480P:
                return(VideoProfile.Landscape480P);

            case VideoAgoraProfile.Landscape360P:
                return(VideoProfile.Landscape360P);

            case VideoAgoraProfile.Landscape240P:
                return(VideoProfile.Landscape240P);

            case VideoAgoraProfile.Landscape120P:
                return(VideoProfile.Landscape120P);

            case VideoAgoraProfile.Landscape4K:
                return(VideoProfile.Landscape4K);

            case VideoAgoraProfile.Portrait4K:
                return(VideoProfile.Portrait4K);

            case VideoAgoraProfile.Portrait120P:
                return(VideoProfile.Portrait120P);

            case VideoAgoraProfile.Portrait240P:
                return(VideoProfile.Portrait240P);

            case VideoAgoraProfile.Portrait360P:
                return(VideoProfile.Portrait360P);

            case VideoAgoraProfile.Portrait480P:
                return(VideoProfile.Portrait480P);

            case VideoAgoraProfile.Portrait720P:
                return(VideoProfile.Portrait720P);

            case VideoAgoraProfile.Portrait1080P:
                return(VideoProfile.Portrait1080P);
            }
            return(VideoProfile.Landscape1080P);
        }
Example #3
0
        private VideoEncoderConfiguration GetVideoConfig(VideoAgoraProfile profile)
        {
            switch (profile)
            {
            case VideoAgoraProfile.Landscape1080P:
                return(new VideoEncoderConfiguration(VideoEncoderConfiguration.VD1920x1080, VideoEncoderConfiguration.FRAME_RATE.FrameRateFps15, VideoEncoderConfiguration.StandardBitrate, VideoEncoderConfiguration.ORIENTATION_MODE.OrientationModeFixedLandscape));

            case VideoAgoraProfile.Landscape720P:
                return(new VideoEncoderConfiguration(VideoEncoderConfiguration.VD1280x720, VideoEncoderConfiguration.FRAME_RATE.FrameRateFps15, VideoEncoderConfiguration.StandardBitrate, VideoEncoderConfiguration.ORIENTATION_MODE.OrientationModeFixedLandscape));

            case VideoAgoraProfile.Landscape480P:
                return(new VideoEncoderConfiguration(VideoEncoderConfiguration.VD840x480, VideoEncoderConfiguration.FRAME_RATE.FrameRateFps15, VideoEncoderConfiguration.StandardBitrate, VideoEncoderConfiguration.ORIENTATION_MODE.OrientationModeFixedLandscape));

            case VideoAgoraProfile.Landscape360P:
                return(new VideoEncoderConfiguration(VideoEncoderConfiguration.VD480x360, VideoEncoderConfiguration.FRAME_RATE.FrameRateFps15, VideoEncoderConfiguration.StandardBitrate, VideoEncoderConfiguration.ORIENTATION_MODE.OrientationModeFixedLandscape));

            case VideoAgoraProfile.Landscape240P:
                return(new VideoEncoderConfiguration(VideoEncoderConfiguration.VD320x240, VideoEncoderConfiguration.FRAME_RATE.FrameRateFps15, VideoEncoderConfiguration.StandardBitrate, VideoEncoderConfiguration.ORIENTATION_MODE.OrientationModeFixedLandscape));

            case VideoAgoraProfile.Landscape120P:
                return(new VideoEncoderConfiguration(VideoEncoderConfiguration.VD160x120, VideoEncoderConfiguration.FRAME_RATE.FrameRateFps15, VideoEncoderConfiguration.StandardBitrate, VideoEncoderConfiguration.ORIENTATION_MODE.OrientationModeFixedLandscape));

            case VideoAgoraProfile.Landscape4K:
                return(new VideoEncoderConfiguration(VideoEncoderConfiguration.VD3840x2160, VideoEncoderConfiguration.FRAME_RATE.FrameRateFps15, VideoEncoderConfiguration.StandardBitrate, VideoEncoderConfiguration.ORIENTATION_MODE.OrientationModeFixedLandscape));

            case VideoAgoraProfile.Portrait4K:
                return(new VideoEncoderConfiguration(VideoEncoderConfiguration.VD3840x2160, VideoEncoderConfiguration.FRAME_RATE.FrameRateFps15, VideoEncoderConfiguration.StandardBitrate, VideoEncoderConfiguration.ORIENTATION_MODE.OrientationModeFixedPortrait));

            case VideoAgoraProfile.Portrait120P:
                return(new VideoEncoderConfiguration(VideoEncoderConfiguration.VD160x120, VideoEncoderConfiguration.FRAME_RATE.FrameRateFps15, VideoEncoderConfiguration.StandardBitrate, VideoEncoderConfiguration.ORIENTATION_MODE.OrientationModeFixedPortrait));

            case VideoAgoraProfile.Portrait240P:
                return(new VideoEncoderConfiguration(VideoEncoderConfiguration.VD320x240, VideoEncoderConfiguration.FRAME_RATE.FrameRateFps15, VideoEncoderConfiguration.StandardBitrate, VideoEncoderConfiguration.ORIENTATION_MODE.OrientationModeFixedPortrait));

            case VideoAgoraProfile.Portrait360P:
                return(new VideoEncoderConfiguration(VideoEncoderConfiguration.VD480x360, VideoEncoderConfiguration.FRAME_RATE.FrameRateFps15, VideoEncoderConfiguration.StandardBitrate, VideoEncoderConfiguration.ORIENTATION_MODE.OrientationModeFixedPortrait));

            case VideoAgoraProfile.Portrait480P:
                return(new VideoEncoderConfiguration(VideoEncoderConfiguration.VD840x480, VideoEncoderConfiguration.FRAME_RATE.FrameRateFps15, VideoEncoderConfiguration.StandardBitrate, VideoEncoderConfiguration.ORIENTATION_MODE.OrientationModeFixedPortrait));

            case VideoAgoraProfile.Portrait720P:
                return(new VideoEncoderConfiguration(VideoEncoderConfiguration.VD1280x720, VideoEncoderConfiguration.FRAME_RATE.FrameRateFps15, VideoEncoderConfiguration.StandardBitrate, VideoEncoderConfiguration.ORIENTATION_MODE.OrientationModeFixedPortrait));

            case VideoAgoraProfile.Portrait1080P:
                return(new VideoEncoderConfiguration(VideoEncoderConfiguration.VD1920x1080, VideoEncoderConfiguration.FRAME_RATE.FrameRateFps15, VideoEncoderConfiguration.StandardBitrate, VideoEncoderConfiguration.ORIENTATION_MODE.OrientationModeFixedPortrait));
            }
            return(new VideoEncoderConfiguration(VideoEncoderConfiguration.VD480x360, VideoEncoderConfiguration.FRAME_RATE.FrameRateFps15, VideoEncoderConfiguration.StandardBitrate, VideoEncoderConfiguration.ORIENTATION_MODE.OrientationModeFixedPortrait));
        }
Example #4
0
        /// <summary>
        /// Starts the session.
        /// </summary>
        /// <param name="sessionId">Session identifier.</param>
        /// <param name="agoraAPI">Agora API key.</param>
        public void StartSession(string sessionId, string agoraAPI, string token, VideoAgoraProfile profile = VideoAgoraProfile.Portrait360P, bool swapWidthAndHeight = false, bool webSdkInteroperability = false)
        {
            _knownStreams.Add(_myId);
            _agoraHandler = new AgoraRtcEngineEventHandler(this);
            _agoraEngine  = RtcEngine.Create(global::Android.App.Application.Context, agoraAPI, _agoraHandler);
            _agoraEngine.EnableWebSdkInteroperability(webSdkInteroperability);
            _agoraEngine.SetChannelProfile(Constants.ChannelProfileCommunication);
            //_agoraEngine.SetVideoProfile(Constants.VideoProfile360p, false); <2.3.0
            _agoraEngine.SetVideoEncoderConfiguration(GetVideoConfig(profile));
            _agoraEngine.EnableLocalVideo(true);
            _agoraEngine.EnableVideo();
            _agoraEngine.SwitchCamera();

            _agoraEngine.SetEnableSpeakerphone(true);
            // if you do not specify the uid, we will generate the uid for you
            _agoraEngine.JoinChannel(token, sessionId, string.Empty, 0);
        }
 /// <summary>
 /// Starts the session.
 /// </summary>
 /// <param name="sessionId">Session identifier.</param>
 /// <param name="agoraAPI">Agora API key.</param>
 public void StartSession(string sessionId, string agoraAPI, VideoAgoraProfile profile = VideoAgoraProfile.Portrait360P, bool swapWidthAndHeight = false, bool webSdkInteroperability = false)
 {
     _knownStreams.Add(_myId);
     _agoraHandler = new AgoraRtcEngineEventHandler(this);
     _agoraEngine  = RtcEngine.Create(global::Android.App.Application.Context, agoraAPI, _agoraHandler);
     _agoraEngine.EnableWebSdkInteroperability(webSdkInteroperability);
     _agoraEngine.SetChannelProfile(Constants.ChannelProfileCommunication);
     _agoraEngine.EnableVideo();
     _agoraEngine.EnableAudio();
     _agoraEngine.SetAudioProfile(1, 2);
     _agoraEngine.EnableDualStreamMode(true);
     _agoraEngine.SetDefaultAudioRoutetoSpeakerphone(true);
     _agoraEngine.SetVideoEncoderConfiguration(BaseVideoEncoding);
     _agoraEngine.SetHighQualityAudioParameters(true, true, true);
     _agoraEngine.EnableLastmileTest();
     // if you do not specify the uid, we will generate the uid for you
     _agoraEngine.JoinChannel(null, sessionId, string.Empty, 0);
 }