Maven Dependency

<code>compile(group: '', name: 'skylink_sdk', version: '0.9.7-RELEASE', ext: 'aar'){
    transitive = true


CDN links

Notable changes


  • Updated libWebRTC to 13039 (Chrome 52).
  • Added Recording capability. [Beta]
  • Added new class Info at:
  • Significant improvement in handling of local camera (see API changes below).


  • Skylink Media Relay support is resumed in this version.
  • Fixed issue of not being able to connect to server after multiple rapid consecutive connect/disconnect to room.

Known Issues

With Skylink Media Relay:

 Users with no Audio and no Video for both send and receive configs are not supported:

  1.  If a Peer joins a room with NO_AUDIO_NO_VIDEO for both send and receive configs, the Peer will not be able to connect to other Peer
  2. This issue does not exist in a normal room (without Skylink Media Relay).
  3. Possible workaround is for user to join room with AUDIO_ONLY or VIDEO_ONLY for setAudioVideoReceiveConfig, but mute and not display these streams when they are received.

Android is unable to connect with IOS if IOS is in the room first.
--- Possible work around is to have IOS connect to room last when using Skylink Media Relay.

Without Skylink Media Relay:

File transfer does not work fully between Android and Web:
  --- The only scenario that works is if Android enters the room before Web and receives from Web.

SkylinkConnection API changes:


- Returns the state of the camera, whether started or stopped.

getPeerIdList [NEW]

- Returns a String array of PeerIds, where the first one is the self PeerId.

startRecording [NEW][Beta]

- Trigger video recording to start when using Skylink Media Relay.

stopRecording [NEW][Beta]

- Trigger video recording to stop when it has already started.

- A link to the recorded mixin video will be sent to user after a while, via RecordingListener.onRecordingVideoLink callback.

isRecording [NEW][Beta]

- API to check if we are currently recording.


- Now does not return a value, but will send outcome of operation to LifeCycleListener.onReceiveLog, with 3 possible Info:

 -- Info.CAM_SWITCH_FRONT (successfully switched to the front camera)

 -- Info.CAM_SWITCH_NON_FRONT (successfully switched to a non front camera)

 -- Info.CAM_SWITCH_NO (camera could not be switched)

toggleCamera [NEW]

- Accepts a boolean that indicates the desired camera state that will be toggled to.

- No action if already in desired state.

getSkylinkVersion [NEW]

- Gets the version of this Skylink SDK for Android as a String, for e.g. "0.9.7".

getVideoView [NEW]

- Return the video view of Peer whose PeerId was provided (null for local Peer).

Skylink Listener changes:


- Will return an int Info, in addition to the existing message string.

- Info is available as a new Public class:




- Will return SurfaceViewRenderer instead of GLSurfaceView.

RecordingListener [NEW][Beta]

- Must be implemented to get recording feedback.


- Inform user about the start of recording.


- Inform user that recording had stopped.


- Send user a link to recorded video.


- Inform user about errors in recording.

SkylinkConfig API changes:

getDefaultCameraName [NEW]

- Get the name of the default camera to start video with.

- This value can be set using setDefaultCamera[Front|Back].

setDefaultCamera[Front|Back] [NEW]

- Sets front or back facing camera as the default start up camera.

- The front camera is the default if not set otherwise.

[get|set]Max[Audio|Video]Bitrate [NEW]

- Get or set the maximum bandwidth in kbps allowed for audio or video.

- Default of 512 kbps is used for max video bitrate.

- Set to negative value to not specify a maximum bandwidth.

Sample App

- Upgraded to the newly released Skylink SDK for Android 0.9.7.

- Used SurfaceViewRenderer instead of GLSurfaceView.

- Used new onReceiveLog signature.

 -- Demonstrated new Info for switchCamera outcomes.

- Used new SkylinkConnection APIs 

 -- toggleCamera and isCameraOn APIs.

  --- Automatically stopped Camera (if started) when app is paused other than for orientation change.

  --- Resumed to expected Camera state when app is resumed.

 -- getPeerIdList & getVideoView

  --- Improved PeerId and Video View tracking.

 -- Demonstrated recording usage in MultiPartyVideoCallFragment.

  --- Tapping outside of self view brings up option to start or stop recording.

  --- Some time after recording has stopped the mixin video link (when received from Recording Server) will show up in a dialog.

  --- On clicking the link, user can choose to view or download the recorded video in MP4 format.