- Date of Release: November 2, 2020
Table of Contents
New Features
User Stream Pinning
A Moderator can now pin any user to force EnableX carry his stream to all end-points irrespective of the user talking or not. So, pinned users’ streams will always be available on Active Talker list. Users who are actively talking will be placed first, and then pinned-non-talkers are placed in the Active Talker list. Moderator can pin 1 less user than max_active_talkers
configured in the room.
Simulcast Support on Chrome
EnableX now supports Simulcast on Chrome Browser only in Rooms defined in Lecture Mode. Maximum 3 Layers supported. Full Simulcast Layers support depends on Publisher Bandwidth. Stream Quality requires minimum Publisher Bandwidth to support Video Layers as given below:
- HD: 3000 Kbps
- SD: 1600 Kbps
- LD: 800 Kbps
Web SDK
New API
Following new methods are introduced in Web SDK to support User Stream Pinning Module.
EnxRoom.addPinUsers(clientIds[], callback)
EnxRoom.removePinUsers(clientIds[], callback)
Android SDK
New API
Following new methods are introduced in Android SDK to support User Stream Pinning Module.
public void addPinUser(List clientList)
public void removePinUser(List clientList)
Following new Observer and callbacks are introduced in Android SDK for Speech Detection and Noise Detection & Reduction.
public void setVadObserver(EnxVadObserver enxVadObserver)
– Its an Observerpublic void onSpeechDetected(JSONObject jsonObject
) – Its a callback for Speech Detectionpublic void onNoiseDetected(JSONObject jsonObject)
_ Its a callback for Noise Detection
Deprecated API
Some of the following methods are removed or are updated to have changed parameter or responses.
public void onCanvasStarted(JSONObject jsonObject)
– Changed topublic void onCanvasStarted(EnxStream enxStream)
public void onCanvasStopped(JSONObject jsonObject)
– Changed topublic void onCanvasStopped(EnxStream enxStream)
public void onScreenSharedStarted(JSONObject jsonObject)
– Changed topublic void onScreenSharedStarted(EnxStream enxStream)
public void onScreenSharedStopped(JSONObject jsonObject)
– Changed topublic void onScreenSharedStopped(EnxStream enxStream)
public void adjustLayout()
– Changed topublic void adjustLayout(int frameWidth, int frameHeight)
initAnnotationView()
– Not used for public.changeToAudioOnly()
– Changed tosetAudioOnlyMode()
public void onActiveTalkerList(JSONObject jsonObject)
– Changed topublic void onActiveTalkerList(RecyclerView recyclerView)
public EnxStream joinRoom(final String token, JSONObject publishStreamInfo,
JSONObject roomInfo, JSONObject advanceOptions)
– Changed topublic EnxStream joinRoom(final String token, JSONObject publishStreamInfo,
JSONObject roomInfo, JSONArray advanceOptions)
iOS SDK
New API
Following new methods are introduced in iOS SDK to support User Stream Pinning Module.
-(void)addPinUser:(NSArray *_Nonnull)userList
-(void)removePinUser:(NSArray *_Nonnull)userList
Deprecated API
Some of the following methods, delegate methods are removed or are updated to have changed parameter or responses.
(void)roomDidDisconnected:(EnxRoomStatus)status
– changed to(void)didRoomDisconnect:(NSArray * _Nullable)response;
(void)didGrantFloorRequested:(NSArray _Nullable)Data *
– Changed to(void)didGrantedFloorRequest:(NSArray *_Nullable)Data;
(void)didDenyFloorRequested:(NSArray _Nullable)Data *
– Changed to(void)didDeniedFloorRequest:(NSArray *_Nullable)Data;
-(void)didReleaseFloorRequested:(NSArray _Nullable)Data *
– Changed to(void)didReleasedFloorRequest:(NSArray *_Nullable)Data;
-(void)room:(EnxRoom _Nullable)room activeTalkerList:(NSArray *_Nullable)Data *
– Changed to the following delegate methods:-(void)room:(EnxRoom _Nullable)room didActiveTalkerList:(NSArray *_Nullable)Data *
– This delegate method will return list of EnxStream-(void)room:(EnxRoom *_Nullable)room didActiveTalkerView:(UIView *_Nullable)view
– This delegate method will return collectionView of EnxStream
-(void)room:(EnxRoom _Nullable)room screenSharedStarted:(NSArray *_Nullable)Data *
– Changed to(void)room:(EnxRoom *_Nullable)room didScreenShareStarted:(EnxStream *_Nullable)stream;
-(void)room:(EnxRoom _Nullable)room screenShareStopped:(NSArray *_Nullable)Data *
– Changed to(void)room:(EnxRoom *_Nullable)room didScreenShareStopped:(EnxStream *_Nullable)stream
-(void)room:(EnxRoom _Nullable)room canvasStarted:(NSArray *_Nullable)Data *
– Changed to-(void)room:(EnxRoom *_Nullable)room didCanvasStarted:(EnxStream *_Nullable)stream;
-(void)room:(EnxRoom _Nullable)room canvasStopped:(NSArray *_Nullable)Data *
– Changed to-(void)room:(EnxRoom *_Nullable)room didCanvasStopped:(EnxStream *_Nullable)stream;
-(EnxStream _Nullable)initlocalStream:(NSDictionary *_Nonnull)publishStreamInfo *
– Changed to-(EnxStream *_Nullable)getLocalStream:(NSDictionary *_Nonnull)publishStreamInfo;
-(void)changeToAudioOnly:(BOOL)
– Changed to-(void)setAudioOnlyMode:(BOOL)audioOnly;
(void)stream:(EnxStream _Nullable)stream didSelfMuteVideo:(NSArray *_Nullable)data *
– Changed to- (void)stream:(EnxStream *_Nullable)stream didRemoteStreamVideoMute:(NSArray *_Nullable)data;
(void)stream:(EnxStream _Nullable)stream didSelfUnMuteVideo:(NSArray *_Nullable)data *
– Changed to(void)stream:(EnxStream *_Nullable)stream didRemoteStreamVideoUnMute:(NSArray *_Nullable)data;
(void)stream:(EnxStream _Nullable)stream didSelfMuteAudio:(NSArray *_Nullable)data *
– Changed to(void)stream:(EnxStream *_Nullable)stream didRemoteStreamAudioMute:(NSArray *_Nullable)data;
(void)stream:(EnxStream _Nullable)stream didSelfUnmuteAudio:(NSArray *_Nullable)data *
Changed to(void)stream:(EnxStream *_Nullable)stream didRemoteStreamAudioUnMute:(NSArray *_Nullable)data;
Bug Fixes
- Bandwidth Alert indication fixes