/// <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); }
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)); }
/// <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); }