Phenix Mobile SDK v2020.1.76 Pre-release Notes

Release Date: 2020.12.16 (iOS), 2020.12.22 (Android)

Features/Improvements

  • PhenixTimeShiftOptions.chunkRetrievalTimeout property allows overriding the maximum amount of time the SDK will wait to download a chunk for time-shift playback

  • PhenixChannelExpress.joinChannel will now return with an "unauthorized" status (subscriber callback) when the stream token that was provided when the channel was joined is either invalid or has expired. The recourse for the app is to leave the channel (PhenixRoomService.leaveRoom()) and then re-join the channel with an updated stream token.

Issues addressed in this release:

  • None

To get the Android SDK:

  • Update the Phenix SDK version in build.gradle file to `2020.1.76`

To get the iOS SDK:

  • Update the Phenix SDK version in Podfile to `2020.1.76-beta`

Or contact Phenix for the iOS SDK download location.

Notes on Integrating the Android SDK

// The current implementation of `TimeShift` leverages HLS chunks. // It is possible that retrieval of such chunks can take a very long time. // This will impact playback if the playback head catches up with the end // of the prefetch window, which will lead to a stall. // By default, a timeout of 10 seconds for each chunk retrieval is used // to avoid holding off playback for too long (worst case a chunk will be // skipped and playback may pause temporarily). // This timeout is configurable by setting the following option (it defaults // to 0, which indicates that we should use the internal default): var timeoutInMilliseconds = 5000L rendererOptions.timeShiftOptions.chunkRetrievalTimeoutInMilliseconds = timeoutInMilliseconds

Notes on Integrating the iOS SDK

// The current implementation of `PhenixTimeShift` leverages HLS chunks. // It is possible that retrieval of such chunks can take a very long time. // This will impact playback if the playback head catches up with the end // of the prefetch window, which will lead to a stall. // By default, a timeout of 10 seconds for each chunk retrieval is used // to avoid holding off playback for too long (worst case a chunk will be // skipped and playback may pause temporarily). // This timeout is configurable by setting the following option (it defaults // to 0, which indicates that we should use the internal default): let timeout: TimeInterval = 5 rendererOptions.timeShiftOptions.chunkRetrievalTimeout = timeout



©2020-2021 Phenix Real Time Solutions, Inc.