Skip to main content

Changelog

1.28.4

  • New Features -

    • Video Clipping : VdoInitParams class includes the new setClips() method, allowing playback of a specific video segment. This feature is ideal for previews, demonstrations, or highlighting content, using startTime(in ms), endTime(in ms), and showClipping parameters to define the segment.
    • Cross-Source Streaming : Also VdoInitParams class able to supports playing cross-source video URLs in addition to VdoCipher-based videos. The new configureMediaSource() method enables playback of external DRM videos, non-DRM videos, local media files, and live streaming URLs.
  • Build & Version Changes

    • Updated media3 version to 1.4.1 from 1.4.0.
  • Breaking Changes -

    • Added a new callback in VdoPlayer.PlaybackEventListener() to expose onTimelineChanged to users. This requires code changes for those using VdoPlayer.PlaybackEventListener().
  • Bug Fixes

    • Improved handling of 61xx errors during playback
    • Enhanced handling of consecutive seeks for smoother playback
    • Backup rules can now be added by the user
    • Fixed bug related to null audio focus
    • BottomSheetDialog is set to be narrower and centered in landscape mode.

Note: Ensure that the build configuration for the project is updated to Android Gradle Plugin (AGP) version 8.2.2 or above, and Gradle version 8.4 or above.

1.27.1

  • New Features -

    • Scrubbing Preview: Introduced a new feature that allows users to preview video content while scrubbing through it. This feature provides a visual preview of different sections of the video, enhancing navigation and user experience.
    • Multi-language Support: Added support for multiple languages, including player text elements and error messages.
    • Background Playback: Improved user experience with seamless media playback across app navigation and multitasking scenarios. VdoPlaybackMode options include:
      • DEFAULT: Stops playback when the player screen is closed.
      • CONTINUE_PLAYBACK_ON_BACK_PRESS: Continues playback when the app is minimized, stops when fully closed.
      • CONTINUE_PLAYBACK_ON_APP_EXIT: Keeps playback running even after the app is closed.
  • Build Changes

    • Update SDK to AGP to 8.2.2, Gradle to 8.4
  • API Changes -

    • VdoPlayerSetting.Builder(): Introduced a new API to globally set VdoPlaybackMode and maxBufferMs on application start for consistent playback and download settings.
    • VdoMediaMetadata: Added a new field in VdoInitParams to allow setting the media title, description, and poster.
  • Breaking Changes -

    • Added a new callback in VdoPlayer.PlaybackEventListener() to expose player options to users once prepared. This requires code changes for those using VdoPlayer.PlaybackEventListener().
    • Introduced a new callback in PlayerHost.InitializationListener() to handle player view disconnection events when background playback starts.
    • The setBufferingGoalMs() method has been removed from VdoInitParams.Builder(). You can now set this using the setMaxBufferMs() method in VdoPlayerSetting.Builder().

1.26.9

  • Bugfixes -
    • Handling action bar with VdoPlayerUIFragment.
    • Added a fix for 1250 during offline playback.

1.26.8

  • Upgraded media3 version to 1.3.1.
  • Added a new error code 5135 for invalid video parameters.
  • Removed unsupported tracks from Downloads.
  • Bugfixes -
    • Resolved NullPointerExceptions.

1.26.7

  • Bugfixes -
    • Resolved NullPointerException on background threads.
    • Potential reduction of 6122 errors.

1.26.6

  • Security updates.

1.26.5

  • Updated the implementation of FOREGROUND_SERVICE_DATA_SYNC, requiring permission to be provided on the app side.
  • Bugfixes -
    • Fixed a crash occurring when a translucent primaryColor was set for the app theme.
    • Fixed the caption search button visibility issue.
    • Resolved the cast context leak.

Note: Ensure android.permission.FOREGROUND_SERVICE_DATA_SYNC is declared in the manifest for download to work when target SDK version is set as 34 and higher.

1.26.4

  • Added Throwable for methods that can throw exceptions.
  • Bugfixes -
    • Fixed RemoteServiceException coming while downloading videos.
    • Fixed few NullPointer exceptions.

1.26.3

  • Upgraded Play Integrity request from Classic to Standard.
  • Bug fixes:
    • Fixed SecurityException with media downloads when targetSdkVersion is set to 34.

1.26.1

  • Exception handling when player not ready.
  • Bugfixes -
    • Fixed NullPointerExceptions related to data initialization and background process.
    • Added offline data synchronization.

1.26.0

  • Added support for token(alternative of otp).
  • Updated minSdkVersion to 21 and compileSdk to 34.
  • Bugfixes -
    • Fixed caption search visible at multiple places issue.
    • Fixed a NullPointerException and an ANR related to MediaDRM.

1.25.1

  • Added an API, DownloadStatus.isExpired(Context), to check if downloaded media has expired.
  • Displaying error code 6187 when attempting to play an expired downloaded file.
  • Bugfixes -
    • Fixed a NullPointerException related to onDrmSessionAcquired.
    • Addressed an "Application Not Responding" (ANR) error.
    • Resolved a crash in the Bottom Sheet: occurred when pressing the home button while the Bottom Sheet was open.

1.24.1

  • Bugfixes -
    • Fixed auto resume not working properly for offline downloads.
    • Fixed waiting text coming on player after video load.
    • Fixed additional status bar space coming in Flutter.

1.24.0

  • Removed support for safetynet. Use Play integrity instead.
  • Upgraded minSdkVersion to 19.
  • Bugfixes -
    • Fixed download failing due to download being requested in the background.
    • Fixed NullPointerException related to onDrmSessionAcquired.
    • Exception Handling

1.23.5

  • Added play integrity support for media download.

1.23.4

  • Bugfix - Added PlatformSchedulerService for media3

1.23.3

  • Adding cross platform resume.

1.23.2

  • Bug fix - Conflict of media3 PlayerView with exoplayer.

1.23.1

  • Bugfix - Fixed the Exoplayer version mismatch error (Error 1203) coming while loading a player in release apk.

1.23.0

  • Updated DownloadStatus object to include displayable title and description provided while downloading a video.
  • Added default player controls in case an error occurs while loading controls
  • Bug Fixes -
    • Fixed an issue where the download query filter by status was not functioning correctly.
    • Resolved the problem of native controls not being displayed for certain videos.

1.22.5

  • Error message upon transitioning from idle to playing state has been eliminated.

1.22.4

  • Migrated to AndroidX Media3 from ExoPlayer.
  • Displaying video tracks according to device capabilities.

1.22.3

  • Showing media title with download progress notification.
  • Bug fix - NoSuchMethodError for WindowInsets.getDisplayCutout().

1.22.2

  • Bug fixes -
    • Removed usage of non-sdk API onApplyWindowInsets.
    • Handling NullPointerException with DlServiceSpec.fromJSONString().

1.22.0

  • Added option to get description from DownloadStatus.
  • Resolved the problem where the player UI control's transparent background was not visible.
  • Resolved the problem where the video was started from beginning after an error occurs.
  • Incorporated 5114 as retryable error code.

1.21.2

  • Backport version with exoplayer dependency v2.19.1
  • Latest changes and fixes picked from version 1.22.5 excluding Media3.

1.21.1

  • Instead of invoking pack-up, we now pause the player to avoid reloading of the player.
  • Bug fixes -
    • Fixed download notification causing crash when started in background.
    • Fixed NullPointer exception when updating speed

1.21.0

  • Added support for windowLayoutInDisplayCutoutMode with inbuilt player UI.
  • Improved feedback of double tap to skip forward and backward.
  • Implemented fullscreen behavior with video in portrait and landscape mode.
  • Fullscreen Changes for Player UI:
    • Fixed auto rotate lock while going into fullscreen mode.
    • Implemented fullscreen behavior based on aspect ratio:
      • Vertical videos will go fullscreen in portrait mode.
      • Horizontal videos will go fullscreen in landscape mode.
      • Added APIs enterFullScreen and exitFullScreen to enter or exit fullscreen in VdoPlayerUIFragment.
      • Added FullScreenActionListener to monitor when video enters or exits fullscreen. The listener can be set using the method setFullscreenActionListener of VdoPlayerUIFragment.
  • Added API to expose playerOption.
  • Added support for handling fullscreen for custom back press implementation
  • The import path for VdoParamsGenerator has been modified.

Note: If the enterFullScreen or exitFullScreen method is called from onConfigurationChanged, the video goes into fullscreen but the orientation needs to be handled manually.

1.19.7

  • Added support for play integrity.
  • Fixed concurrency issue with offline download.

1.19.6

  • Added support to conserve player config across session.
  • Reduce watermark text size proportionately for a smaller screen.
  • Bug fixes -
    • Releasing media session when player stops.
    • Showing "Tap to retry" only when error message is retry-able with the built-in player ui.
    • Going to PiP closes the bottom sheet and dialogs with the built-in player ui.

1.19.4

  • Upgraded exoplayer dependency to 2.18.5
  • Added view overlay for fullscreen and picture in picture.
  • Bug fixes

1.19.2

  • Bug fix - Incorrect MediaInfo.duration with DownloadStatus.

1.19.1

  • Changed exoplayer data source configurations.

1.19.0

  • VdoPlayerUIFragment now has an option to disable default controls.
  • Pinch to zoom is now supported with VdoPlayerUIFragment default controls.
  • The player resize mode can now be modified.
  • Added support for downloading media without audio.
  • Upgraded exoplayer dependency to 2.18.2
  • Bug fixes.

1.18.2

  • Minor Improvements

1.18.1

  • Added support for Chromecast.

1.17.0

  • Added support for picture in picture mode.
  • Added callback for persistent OTP with save offline.
  • Updated CompileSdkVersion from API level 31 to 33.
  • Updated TargetSdkVersion from API level 30 to 32.
  • Vdocipher cast module moved into core module. Cast module dependency no longer needs to be specified separately.
  • Removed jcenter due to deprecation.
  • Fixed memory leaks.

1.16.0

  • Fixed audio issues with offline playback.

  • Changed signature of OptionsDownloader. Context is now required for the instantiation of OptionDownloader.

     OptionsDownloader optionsDownloader = new OptionsDownloader(context); //Pass context here.
  • Fixed VdoDlService memory leak.

1.15.1

  • Code optimisation and refactoring

1.15.0

  • Bug fixes related to HLS playback

  • First call to onBackPressed() is handled by VdoPlayerUIFragment to manage player orientation and state then subsequent calls are passed to attached activity.

  • Option to disable initital handling of onBackPressed() in VdoPlayerUIFragment by setting app:handleBackPress="false". This can be used to handle all back press action in activity.

    <fragment
    android:name="com.vdocipher.aegis.ui.view.VdoPlayerUIFragment"
    ....
    app:handleBackPress="false" //by default it's true
    />

1.14.2

  • Added support for TV applications in VdoPlayerUIFragment

1.14.1

  • Fixed issue with caption selection
  • Increased gesture area for double tap in VdoPlayerUIFragment
  • Added migrations for database changes across SDK

1.14.0

  • Player UI enhancements
  • Fixed issue with clear storage option in VdoPlayerUIFragment

1.13.1

  • Player UI enhancements
  • Multiple download issue fixed
  • Upgraded exoplayer dependency to 2.18.1
  • Bug fixes

1.13.0

  • New VdoPlayerUIFragment with built-in player controls
    • Option to enable or disable player controls
    • Media can be saved and streamed locally
  • Bug fixes

1.12.1

  • Adaptive playback bug fix

1.12.0

  • Upgraded exoplayer dependency to 2.18.0
  • Added caption support for offline playback
  • Added option in VdoInitParams to resume video from last playback position
  • Added callback to provide an event to resume from saved seek position
  • Bug fixes

1.11.0

  • Upgraded exoplayer dependency to 2.17.1
  • Implemented offline downloads using exoplayer
    • Added feature to download content in external storage
    • Use VdoDownloadManager.getInstance(@NonNull Context context, @Nullable String downloadLocation) with DownloadRequest.Builder(@NonNull DownloadSelections selections) and vdoDownloadManager.enqueueV2(@NonNull DownloadRequest downloadRequest) to use new download implementation
  • Provided option for customising download notification helper
  • Added feature to search using selected caption
  • Added feature to set default caption
  • Enhanced watermark feature
  • Bug Fixes

Note - - If video download is paused and download location is changed, the half downloaded content needs to be removed manually from device storage and download should be restarted. - In case of re-downloading a video, existing file is removed and downloaded again with new selected tracks

1.10.1

  • Fix Track class equals() and hashCode()
  • Bug fixes

1.10.0

  • Update minSdkVersion to 18. Apps depending on this version will need to set a minSdkVersion of 18 or above
  • Fix PlaybackEventListener#onBufferUpdate callback not being called
  • Move VdoInitParams, PlayerHost and related classes to top level classes
  • Class name changes are:
    • VdoPlayer.PlayerHost --> PlayerHost
    • VdoPlayer.InitializationListener --> PlayerHost.InitializationListener
    • VdoPlayer.PlayerHostNotReadyException --> PlayerHost.PlayerHostNotReadyException
    • VdoPlayer.VdoInitParams --> VdoInitParams

1.9.0

  • Upgrade exoplayer dependency to 2.14.2
  • Restore track selections on player restore
  • Bug fixes

1.8.1

  • Option to block devices with ABD debugging on
  • Bug fixes

1.7.3

  • Upgrade exoplayer dependency to 2.12.3
  • Regular security and bug fix updates

1.7.2

  • Upgrade exoplayer dependency to 2.11.8
  • Add api to get device's analytics ID on vdocipher logs for error handling
  • Bug fixes.

1.7.1

  • Add option in VdoInitParams to turn off playback analytics collection.
  • Disable auto backup of downloaded offline video index.
  • Add error code for the case when a requested offline video is not found on the device.
  • Bug fixes.

1.6.0

  • SafetyNet Implementation for security enhancements

1.5.0

  • Offline Download Video Watermark addition

1.4.0

  • Bug fixes
  • Added Cast plugin dependencies

1.3.1

  • Further classify generic errors so they are easier to debug.
  • Bug fixes

1.2.0

  • Implemented Watermark Skip Behaviour
  • Bug fixes

1.1.0

  • Some generic error codes have been replaced with more informative specific ones.
  • Bug fixes.

1.0.1

  • New sdk available for Google Cast support; integration instructions and demo provided in sample app on github
  • Added support to specify resume time and autoplay behavior in VdoInitParams
  • Added support-library based player fragment
  • Improved offline playback compatibility
  • Bug fixes.

1.0.0-beta5

  • Fixed delayed query results for offline downloads.
  • Fixed unreliable deletion for offline downloads.
  • Updated to new gradle dependency configurations.
  • Bug fixes.

1.0.0-beta4

  • Added api to specify start and end time for playback in VdoInitParams.
  • Additional error information, when applicable, is available in DownloadStatus#reasonDescription, which can be parsed as a json to obtain details.
  • Bug fixes.

1.0.0-beta1

  • Added api to easily set and query adaptive mode.
  • Finer permission denial error codes and messages.
  • Bug fixes.