Maven Dependency


<code>compile(group: 'sg.com.temasys.skylink.sdk', name: 'skylink_sdk', version: '0.9.7-RELEASE', ext: 'aar'){
    transitive = true
}</code>

 


CDN links





Notable changes


General

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


Fixes

  • 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:


isCameraOn

- 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.


switchCamera

- 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:


LifeCycleListener.onReceiveLog

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

- Info is available as a new Public class: sg.com.temasys.skylink.sdk.rtc.Info.java


MediaListener

.onLocalMediaCapture

.onRemotePeerMediaReceive

- Will return SurfaceViewRenderer instead of GLSurfaceView.


RecordingListener [NEW][Beta]

- Must be implemented to get recording feedback.

.onRecordingStart

- Inform user about the start of recording.

.onRecordingStop

- Inform user that recording had stopped.

.onRecordingVideoLink

- Send user a link to recorded video.

.onRecordingError

- 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.