{"id":3739,"date":"2021-10-01T18:03:18","date_gmt":"2021-10-01T10:03:18","guid":{"rendered":"https:\/\/www.enablex.io\/developer\/?page_id=3739"},"modified":"2025-04-04T21:46:17","modified_gmt":"2025-04-04T13:46:17","slug":"enxstream","status":"publish","type":"page","link":"https:\/\/doc.smartflomeet.ttns.in\/developer\/video-api\/client-api\/ios-toolkit\/enxstream\/","title":{"rendered":"EnxStream Stream-Handler: iOS SDK &#8211; Video API"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote\"><p>The EnxStream is a derived Class from EnxRtc. It handles all the Media Stream-related functions to initiate, configure, and transport Streams to the portal Media Servers. It is also used for receiving Stream endpoints to be played.<\/p><\/blockquote>\n\n\n\n<p> References: <a href=\"#attributes\">Attributes<\/a> &#8211; <a href=\"#methods\">Methods<\/a> &#8211; <a href=\"#observers\">Observers<\/a><\/p>\n\n\n\n<a name=\"attributes\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Properties<\/h2>\n\n\n\n<ul><li><code>streamId<\/code> &#8211; Unique Stream ID.<\/li><li><code>isLocal<\/code> &#8211; Boolean. True for Local Stream, False for Remote Stream.<\/li><li><code>screen<\/code> &#8211; Boolean. True if the stream carries Screen Share.<\/li><li><code>isSelfAudioMuted<\/code> &#8211; Boolean. True if Local Stream&#8217;s Audio is muted.<\/li><li><code>isSelfVideoMuted<\/code> &#8211; Boolean. True if Local Stream&#8217;s Video is muted.<\/li><\/ul>\n\n\n\n<a name=\"methods\"><\/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>A categorized listing of Stream Handler methods is as given below:<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Stream Information<\/strong><\/p>\n\n\n\n<ul><li><a href=\"..\/stream-information\/#track-availability\" target=\"_blank\" rel=\"noreferrer noopener\"><code>hasAudio()<\/code><\/a> &#8211; To know if the stream has an Audio track.<\/li><li><a href=\"..\/stream-information\/#track-availability\" target=\"_blank\" rel=\"noreferrer noopener\"><code>hasVideo()<\/code><\/a> &#8211; To know if the stream has a Video track.<\/li><li><a href=\"..\/stream-information\/#track-availability\"><code>hasData()<\/code><\/a> &#8211; To know if the stream has Text Data.<\/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> &#8211; To mute\/unmute audio of the Local Stream.<\/li><li><a href=\"..\/mute-audio-video-stream\/#mute-unmute-audio\" target=\"_blank\" rel=\"noreferrer noopener\"><code>muteSelfVideo()<\/code><\/a> &#8211; To mute\/unmute video of the Local Stream.<\/li><li><a href=\"..\/switch-camera-mic-speaker\/#switch-camera\"><code>switchCamera()<\/code><\/a> &#8211; To switch the Stream source from rear to front Camera or vice-versa.<\/li><li><a href=\"..\/update-stream-configuration\/\"><code>updateConfiguration()<\/code><\/a> &#8211; To reconfigure a Stream by adding new or updating existing attributes of the 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>Moderator Controls<\/strong><\/p>\n\n\n\n<ul><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participants\"><code>hardMuteAudio()<\/code><\/a> &#8211; To hard mute a Participant\u2019s audio.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participants\"><code>hardMuteVideo()<\/code><\/a> &#8211; To hard mute a Participant\u2019s video.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participants\"><code>hardUnMuteAudio()<\/code><\/a> &#8211; To lift the audio hard-mute restriction from the Participant.<\/li><li><a href=\"..\/hard-muting\/#hard-mute-unmute-participants\"><code>hardUnMuteVideo()<\/code><\/a> &#8211; 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>Play Stream<\/strong><\/p>\n\n\n\n<ul><li><a href=\"..\/play-stream\/\" target=\"_blank\" rel=\"noreferrer noopener\"><code>attachRenderer()<\/code><\/a> &#8211; To attach a Stream to the PlayerView.<\/li><li><a href=\"..\/play-stream\/\"><code>detachRenderer()<\/code><\/a> &#8211; To detach a Stream from the PlayerView.<\/li><\/ul>\n\n\n\n<a name=\"observers\"><\/a>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Delegate Methods<\/h2>\n\n\n\n<p>Given below is a category-wise listing of delegate methods based on their functions:<\/p>\n\n\n\n<p><strong>Streaming<\/strong><\/p>\n\n\n\n<ul><li><code>didAudioEvents<\/code>  &#8211; Notification to the stream publisher when Local Stream&#8217;s Video Audio is muted\/unmuted.<\/li><li><code>didVideoEvents <\/code>&#8211; Notification to the stream publisher when Local Stream&#8217;s Video is muted\/unmuted.<\/li><li><code>stream:didSelfMuteVideo<\/code> &#8211; Notification to the stream publisher when Local Stream&#8217;s Video is muted.<\/li><li><code>stream:didSelfUnmuteVideo<\/code> &#8211; Notification to the stream publisher when Local Stream&#8217;s Video is unmuted. <\/li><li><code>stream:didSelfMuteAudio<\/code> &#8211; Notification to the stream publisher when Local Stream&#8217;s Audio is muted.<\/li><li><code>stream:didSelfUnmuteAudio<\/code> &#8211; Notification to the stream publisher when Local Stream&#8217;s Audio is unmuted.<\/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<\/strong><\/p>\n\n\n\n<ul><li><code>didReceiveData:<\/code>  &#8211; When text messages are received.<\/li><\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Hard Mute Audio<\/strong><\/p>\n\n\n\n<ul><li><code>didhardMuteAudio<\/code> &#8211; Acknowledgment to the Moderator when the Participant\u2019s Audio Stream is hard-muted.<\/li><li><code>didhardUnMuteAudio<\/code> &#8211; Acknowledgment to the Moderator when the hard-mute restriction is lifted from the Participant\u2019s Audio Stream.<\/li><li><code>didRecievedHardMutedAudio<\/code> &#8211; Notification to the Participant when the Moderator hard-mutes their Audio Stream.<\/li><li><code>didRecievedHardUnmutedAudio<\/code> &#8211; Notification to the Participant when the Moderator lifts the hard-mute restriction from their Audio 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>Hard Mute Video<\/strong> <\/p>\n\n\n\n<ul><li><code>stream:didHardVideoMute<\/code> &#8211; Acknowledgment to the Moderator when the Participant&#8217;s Video Stream is hard-muted.<\/li><li><code>stream:didHardVideoUnMute<\/code> &#8211; Acknowledgment to the Moderator when the hard-mute restriction is lifted from the Participant&#8217;s Video Stream.<\/li><li><code>stream:didReceivehardMuteVideo<\/code> &#8211; Notification to the Participant when the Moderator hard-mutes their Video Stream.<\/li><li><code>stream:didReceivehardUnmuteVideo<\/code> &#8211; Notification to the Participant when the Moderator lifts the hard-mute restriction from their Video Stream.<\/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=\"..\/enxroom\/\"><\/a><a href=\"..\/enxroom\/\">EnxRoom \u2013 Room Handler<\/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\"><a href=\"..\/how-to-use\/\">How to use?<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The EnxStream is a derived Class from EnxRtc. It handles all the Media Stream-related functions to initiate, configure, and transport Streams to the portal Media Servers. It is also used for receiving Stream endpoints to be played. References: Attributes &#8211; Methods &#8211; Observers Properties streamId &#8211; Unique Stream ID. isLocal &#8211; Boolean. True for Local Stream, False for Remote Stream. screen &#8211; Boolean. True if the stream carries Screen Share.&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3732,"menu_order":3,"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":"The EnxStream is a derived Class from EnxRtc. It handles all the Media Stream-related functions to initiate, configure, and transport Streams to the portal Media Servers. It is also used for receiving Stream endpoints to be played. References: Attributes &#8211; Methods &#8211; Observers Properties streamId &#8211; Unique Stream ID. isLocal &#8211; Boolean. True for Local&hellip;","_links":{"self":[{"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/3739"}],"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=3739"}],"version-history":[{"count":0,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/3739\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/pages\/3732"}],"wp:attachment":[{"href":"https:\/\/doc.smartflomeet.ttns.in\/developer\/wp-json\/wp\/v2\/media?parent=3739"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}