{"id":3756,"date":"2021-10-01T18:38:06","date_gmt":"2021-10-01T10:38:06","guid":{"rendered":"https:\/\/www.enablex.io\/developer\/?page_id=3756"},"modified":"2025-04-11T16:55:56","modified_gmt":"2025-04-11T08:55:56","slug":"enxrtc","status":"publish","type":"page","link":"https:\/\/doc.smartflomeet.ttns.in\/developer\/video-api\/client-api\/flutter-toolkit\/enxrtc\/","title":{"rendered":"EnxRtc Class: Flutter SDK &#8211; Video API"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote\"><p>This Class features host of methods and event listeners to help developers to create RTC Application. Using these methods, a Client End Point can connect a Video Session and manage different aspect to conduct an effective Session. <\/p><\/blockquote>\n\n\n\n<a name=\"methodsd\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Methods<\/h2>\n\n\n\n<p>Given below a categorized listing of methods:  <\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Connection <\/strong><\/p>\n\n\n\n<ul><li><a href=\"..\/room-connection\/#join-room\" target=\"_blank\" rel=\"noreferrer noopener\"><code>joinRoom()<\/code><\/a> &#8211; To connect and join Room with a Stream.<\/li><li><a href=\"..\/room-connection\/#join-room\" target=\"_blank\" rel=\"noreferrer noopener\"><code>disconnect()<\/code><\/a> &#8211; To disconnect End-Point from the room.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Information<\/strong><\/p>\n\n\n\n<ul><li><a href=\"..\/room-information\/#get-room-id\" target=\"_blank\" rel=\"noreferrer noopener\"><code>getRoomId()<\/code><\/a> &#8211; To get Room ID.<\/li><li><a href=\"..\/room-information\/#get-connected-user-id\" target=\"_blank\" rel=\"noreferrer noopener\"><code>getClientId()<\/code><\/a> &#8211; To get Client ID of the connected user to the room.<\/li><li><a href=\"..\/room-information\/#get-connected-user-name\" target=\"_blank\" rel=\"noreferrer noopener\"><code>getClientName()<\/code><\/a> &#8211; To get Client Name of connected user to the room.<\/li><li><a href=\"..\/room-information\/#get-connected-user-role\" target=\"_blank\" rel=\"noreferrer noopener\"><code>getRole()<\/code><\/a>&#8211; To get role of user connected to the room, viz. <em>moderator <\/em>or <em>participant<\/em>.<\/li><li><a href=\"..\/room-information\/#whoami\" target=\"_blank\" rel=\"noreferrer noopener\"><code>whoAmI()<\/code><\/a> &#8211; To get connected user information at an End-Point.<\/li><li><a href=\"..\/room-information\/#get-connected-user-list\" target=\"_blank\" rel=\"noreferrer noopener\"><code>getUserList()<\/code><\/a> &#8211; To get a list of connected users to the Room.<\/li><li><a href=\"..\/room-information\/#know-room-at\" target=\"_blank\" rel=\"noreferrer noopener\"><code>isRoomActiveTalker()<\/code><\/a> &#8211; To check if the Room has Active Talker.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Streaming<\/strong><\/p>\n\n\n\n<ul><li><a rel=\"noreferrer noopener\" href=\"..\/publishing-local-stream\/#publish-stream\" target=\"_blank\"><code>publish()<\/code><\/a> &#8211; To publish a local stream to the connected Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/publishing-local-stream\/#unpublish-stream\" target=\"_blank\"><code>unpublish()<\/code><\/a> &#8211; To unpublish a local stream.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/subscribing-remote-streams\/\" target=\"_blank\"><code>subscribe()<\/code><\/a> &#8211; To subscribe a remote stream to receive.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/active-talkers\/#get-max-talkers\" target=\"_blank\"><code>getMaxTalkers()<\/code><\/a> &#8211; To get number of talkers allowed to receive in Active Talker List.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/active-talkers\/#set-talker-count\" target=\"_blank\"><code>setTalkerCount()<\/code><\/a> &#8211; To opt for number of talkers to receive in Active Talker List. <\/li><li><a rel=\"noreferrer noopener\" href=\"..\/active-talkers\/#get-talker-count\" target=\"_blank\"><code>getTalkerCount()<\/code><\/a> &#8211; To get number of talkers to receive in Active Talker List.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/audio-only-mode\/\" target=\"_blank\"><code>setAudioOnlyMode()<\/code><\/a> &#8211; To switch to audio only call and you neither want to receive anyone\u2019s video not want to publish your video.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/advance-stream-options\/#get-opt\" target=\"_blank\"><code>getAdvancedOptions()<\/code><\/a> &#8211; To to get the advanced options like battery updated, video quality changed etc.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/advance-stream-options\/#set-opt\" target=\"_blank\"><code>setAdvancedOptions()<\/code><\/a> &#8211; To set advanced options.<\/li><li><a href=\"..\/set-video-scaling-type\/\" target=\"_blank\" rel=\"noreferrer noopener\"><code>setScalingType()<\/code><\/a> &#8211; To update the scaling type.<\/li><li><a href=\"..\/mute-subscriber-streams-audio\/\" target=\"_blank\" rel=\"noreferrer noopener\"><code>muteSubscribeStreamsAudio()<\/code><\/a> &#8211; To mute\/unmute audio of subscribed stream.<\/li><li><a href=\"..\/update-stream-configuration\/\" target=\"_blank\" rel=\"noreferrer noopener\"><code>updateConfiguration()<\/code><\/a> &#8211; To re-configure your stream by adding new or updating existing specification parameters of a stream.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Messaging &amp; File Sharing<\/strong><\/p>\n\n\n\n<ul><li><a rel=\"noreferrer noopener\" href=\"..\/custom-signalling\/\" target=\"_blank\"><code>sendUserData()<\/code><\/a> &#8211; To send message to all or selected participants in a Room.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/chat\/\" target=\"_blank\"><code>sendMessage()<\/code><\/a> &#8211; To send public and private chat-message.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#upload-file\" target=\"_blank\"><code>sendFiles()<\/code><\/a>&#8211; To send files to specific user, a group or all.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#cancel-upload\" target=\"_blank\"><code>cancelUpload()<\/code><\/a> &#8211; To cancel an ongoing upload of a file.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#cancel-uploads\" target=\"_blank\"><code>cancelAllUploads()<\/code><\/a> &#8211; To cancel all uploads.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#download-file\" target=\"_blank\"><code>getAvailableFiles()<\/code><\/a> &#8211; To get all available files in Session to download.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#download-file\" target=\"_blank\"><code>downloadFile()<\/code><\/a> &#8211; To download a file.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/file-share\/#cancel-download\" target=\"_blank\"><code>cancelDownload()<\/code><\/a> &#8211; To cancel an ongoing download of a file.&nbsp;<\/li><li><a href=\"..\/file-share\/#cancel-all-download\" target=\"_blank\" rel=\"noreferrer noopener\"><code>cancelAllDownloads()<\/code><\/a> &#8211; To cancel all downloads.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Moderator Controls<\/strong><\/p>\n\n\n\n<ul><li><a href=\"..\/recording\/#on-demand-recording\" target=\"_blank\" rel=\"noreferrer noopener\"><code>startRecord()<\/code><\/a> &#8211; To start session recording.<\/li><li><a href=\"..\/recording\/#on-demand-recording\" target=\"_blank\" rel=\"noreferrer noopener\"><code>stopRecord()<\/code><\/a> &#8211; To stop ongoing session recording.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-room\" target=\"_blank\" rel=\"noreferrer noopener\"><code>hardMute()<\/code><\/a> &#8211; To hard-mute a Room, no participant is allowed to talk.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-room\" target=\"_blank\" rel=\"noreferrer noopener\"><code>hardUnMute()<\/code><\/a> &#8211; To hard-unmute a Room.<\/li><li><a href=\"..\/room-entry-restriction\/#lock-unlock-room\" target=\"_blank\" rel=\"noreferrer noopener\"><code>lockRoom()<\/code><\/a> &#8211; To lock Room to disallow further entry into Room.<\/li><li><a href=\"..\/room-entry-restriction\/#lock-unlock-room\" target=\"_blank\" rel=\"noreferrer noopener\"><code>unLockRoom()<\/code><\/a> &#8211; To unlock Room to allow subsequent entry into Room.<\/li><li><a href=\"..\/disconnect-user\/\" target=\"_blank\" rel=\"noreferrer noopener\"><code>dropUser()<\/code><\/a> &#8211; To drop a user from session.<\/li><li><a href=\"..\/session-extension-closure\/#destroy-session\" target=\"_blank\" rel=\"noreferrer noopener\"><code>destroy()<\/code><\/a> &#8211; To conclude an ongoing session.<\/li><li><a href=\"..\/participant-role-switch\/\" target=\"_blank\" rel=\"noreferrer noopener\"><code>switchUserRole()<\/code><\/a> &#8211; For the Moderator to designate a connected Participant to act as a Moderator during the session.<\/li><li><a href=\"..\/room-mode-switch\/\" target=\"_blank\" rel=\"noreferrer noopener\"><code>switchRoomMode()<\/code><\/a>&nbsp;\u2013 Allows the Moderator to switch the Room\u2019s mode of operation from Group to Lecture or vice versa during a running conference.<\/li><li><a href=\"..\/room-entry-restriction\/#allow-deny-room-entry\" target=\"_blank\" rel=\"noreferrer noopener\"><code>approveAwaitedUser()<\/code><\/a>&nbsp;\u2013 To allow the Moderator to approve a user\u2019s entry.<\/li><li><a href=\"..\/room-entry-restriction\/#allow-deny-room-entry\" target=\"_blank\" rel=\"noreferrer noopener\"><code>denyAwaitedUser()<\/code><\/a>&nbsp;\u2013 To decline a user\u2019s entry to the Session.<\/li><li><a href=\"..\/pin-user\/\" target=\"_blank\" rel=\"noreferrer noopener\"><code>pinUsers()<\/code><\/a>&nbsp;\u2013 To allow the Moderator to pin a user(s) to the Active Talker List irrespective of the user\u2019s activity level.<\/li><li><a href=\"..\/spotlight-user\/\" target=\"_blank\" rel=\"noreferrer noopener\"><code>addSpotlightUsers()<\/code><\/a>&nbsp;\u2013 To allow the Moderator to spotlight a user which pushes the user\u2019s Stream to the top of Active Talker List&nbsp;irrespective of the user\u2019s activity level.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participants\" target=\"_blank\" rel=\"noreferrer noopener\"><code>hardMuteAudio()<\/code><\/a>&nbsp;\u2013 To hard-mute a Participant\u2019s audio.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participants\" target=\"_blank\" rel=\"noreferrer noopener\"><code>hardMuteVideo()<\/code><\/a>&nbsp;\u2013 To hard-mute a Participant\u2019s video.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participants\" target=\"_blank\" rel=\"noreferrer noopener\"><code>hardUnMuteAudio()<\/code><\/a>\u2013 To lift the audio hard-mute restriction from the Participant.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participants\" target=\"_blank\" rel=\"noreferrer noopener\"><code>hardUnmuteVideo()<\/code><\/a>&nbsp;\u2013 To lift the video hard-mute restriction from the Participant.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Floor Access Control<\/strong><\/p>\n\n\n\n<ul><li><a href=\"..\/floor-access-control\/#request-floor-access\" target=\"_blank\" rel=\"noreferrer noopener\"><code>requestFloor()<\/code><\/a> &#8211; To request moderator for Floor Access to publish.<\/li><li><a href=\"..\/floor-access-control\/#cancel-floor-access\" target=\"_blank\" rel=\"noreferrer noopener\"><code>cancelFloor()<\/code><\/a> &#8211; For the participant to cancel his own request for Floor Access.<\/li><li><a href=\"..\/floor-access-control\/#grant-floor-access\" target=\"_blank\" rel=\"noreferrer noopener\"><code>grantFloor()<\/code><\/a> &#8211; To grant Floor Access participant allowing him to publish.<\/li><li><a href=\"..\/floor-access-control\/#deny-floor-access\" target=\"_blank\" rel=\"noreferrer noopener\"><code>denyFloor()<\/code><\/a> &#8211; To deny Floor Access to a participant who had requested access.<\/li><li><a href=\"..\/floor-access-control\/#finish-floor-access\" target=\"_blank\" rel=\"noreferrer noopener\"><code>finishFloor()<\/code><\/a> &#8211; For the participant to finish floor access granted to him by Moderator.<\/li><li><a href=\"..\/floor-access-control\/#release-floor-access\" target=\"_blank\" rel=\"noreferrer noopener\"><code>releaseFloor()<\/code><\/a> &#8211; For the Moderator to terminate floor access granted to some participant.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Devices<\/strong><\/p>\n\n\n\n<ul><li><a href=\"..\/get-devices\/\" target=\"_blank\" rel=\"noreferrer noopener\"><code>getDevices()<\/code><\/a> &#8211; To get a list of connected Audio devices.<\/li><li><a href=\"..\/get-selected-devices\/\" target=\"_blank\" rel=\"noreferrer noopener\"><code>getSelectedDevice()<\/code><\/a> &#8211; To get the name of the given\/selected Device.<\/li><li><a href=\"..\/switch-camera-mic-speaker\/#switch-media-devices\" target=\"_blank\" rel=\"noreferrer noopener\"><code>switchMediaDevice()<\/code><\/a> &#8211; To switch to alternate Media Device. A user can switch to alternate available Microphone.<\/li><li><a href=\"..\/switch-camera-mic-speaker\/#switch-camera\" target=\"_blank\" rel=\"noreferrer noopener\"><code>switchCamera()<\/code><\/a>&nbsp;&#8211; To switch from rear to front Camera and vice-versa to change Stream Source.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Stream Controls<\/strong><\/p>\n\n\n\n<ul><li><a href=\"..\/mute-audio-video-stream\/#mute-unmute-audio\" target=\"_blank\" rel=\"noreferrer noopener\"><code>muteSelfAudio()<\/code><\/a>&nbsp;&#8211; To mute\/unmute audio of own published stream.<\/li><li><a href=\"..\/mute-audio-video-stream\/#mute-unmute-video\" target=\"_blank\" rel=\"noreferrer noopener\"><code>muteSelfVideo()<\/code><\/a>&nbsp;&#8211; To mute\/unmute video of own published stream.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Manage Logging<\/strong><\/p>\n\n\n\n<ul><li><a rel=\"noreferrer noopener\" href=\"..\/console-logging\/#enable-log\" target=\"_blank\"><code>enableLogs()<\/code><\/a> &#8211; To enable Client Side Logging.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/console-logging\/#share-log\" target=\"_blank\"><code>postClientLogs()<\/code><\/a> &#8211; To submit Client End Point logs to Portal Team to audit.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Advance Features<\/strong><\/p>\n\n\n\n<ul><li><code><a rel=\"noreferrer noopener\" href=\"..\/screen-share\/#start-share\" target=\"_blank\"><code>startScreenShare<\/code><\/a>()<\/code>&nbsp;\u2013 To create a Screen-Sharing Stream.<\/li><li><code><a rel=\"noreferrer noopener\" href=\"..\/screen-share\/#stop-share\" target=\"_blank\"><code>stopScreenShare<\/code><\/a>()<\/code>&nbsp;\u2013 To stop the ongoing Screen-Sharing.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/set-video-scaling-type\/\" target=\"_blank\"><code>setPlayerScalingType()<\/code><\/a> &#8211; To choose Stream Scaling Options within Video Player.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/session-extension-closure\/#extend-session\" target=\"_blank\"><code>extendConferenceDuration()<\/code><\/a> &#8211; To extend Conference Duration.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/enable-proximity-sensor\/\" target=\"_blank\"><code>enableProximitySensor()<\/code><\/a> &#8211; To enable Proximity Sensor.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/live-media-statistics\/\" target=\"_blank\"><code>enableStats()<\/code><\/a> &#8211; To&nbsp;get live statistics of each stream you are playing at any end-point, be it a local stream or subscribed stream.<\/li><li><code><a rel=\"noreferrer noopener\" href=\"..\/talker-noise-notification\/\" target=\"_blank\"><code>subscribeForTalkerNotification<\/code><\/a>()<\/code>&nbsp;\u2013 To receive notification for the talkers in the Room or the participants acting as a source of the noise.&nbsp;<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/handle-application-switch\/\" target=\"_blank\"><code>stopVideoTracksOnApplicationBackground()<\/code><\/a> &#8211; To switch to different application pushing your RTC Application to Background.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/handle-application-switch\/\" target=\"_blank\"><code>startVideoTracksOnApplicationForeground()<\/code><\/a> &#8211; To switch back to different application pushing your RTC Application in the Foreground.<\/li><li><a rel=\"noreferrer noopener\" href=\"..\/get-video-quality\/\" target=\"_blank\"><code>getReceiveVideoQuality()<\/code><\/a> &#8211; To switch back to different application pushing your RTC Application in the Foreground.<\/li><\/ul>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p>\u2190  <a href=\"..\/console-logging\/\">Manage Log<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-center\"><a href=\"..\/\">Index<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<p class=\"has-text-align-right\"> <\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This Class features host of methods and event listeners to help developers to create RTC Application. Using these methods, a Client End Point can connect a Video Session and manage different aspect to conduct an effective Session. Methods Given below a categorized listing of methods: Connection joinRoom() &#8211; To connect and join Room with a Stream. disconnect() &#8211; To disconnect End-Point from the room. Information getRoomId() &#8211; To get Room&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3755,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ub_ctt_via":""},"featured_image_src":null,"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"featured":false,"featured-large":false},"uagb_author_info":{"display_name":"vcxdevwpadmin","author_link":"https:\/\/doc.smartflomeet.ttns.in\/developer\/author\/vcxdevwpadmin\/"},"uagb_comment_info":0,"uagb_excerpt":"This Class features host of methods and event listeners to help developers to create RTC Application. Using these methods, a Client End Point can connect a Video Session and manage different aspect to conduct an effective Session. Methods Given below a categorized listing of methods: Connection joinRoom() &#8211; To connect and join Room with a&hellip;","_links":{"self":[{"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/3756"}],"collection":[{"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/comments?post=3756"}],"version-history":[{"count":0,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/3756\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/3755"}],"wp:attachment":[{"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/media?parent=3756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}