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
-
Skylink for Android SDK AAR:
https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.7/skylink_sdk-0.9.7-RELEASE.aar -
libWebRTC files (not required to download if using Android Studio set up as documented):
- https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.7/libjingle_peerconnection.jar
- https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.7/arm64-v8a/libjingle_peerconnection_so.so
- https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.7/armeabi-v7a/libjingle_peerconnection_so.so
-https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.7/x86/libjingle_peerconnection_so.so
-https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.7/x86_64/libjingle_peerconnection_so.so
-
Readme and other docs:
- https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.7/readme.md
- https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.7/Android_SDK_Version_Required.md
- https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.7/SkylinkSDK_Android_Studio_Setup.md
-
API Documentation
https://cdn.temasys.com.sg/skylink/skylinksdk/android/latest/doc/reference/packages.html
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.