-
Notifications
You must be signed in to change notification settings - Fork 1
Changelog
Andrei Marinescu edited this page Feb 7, 2023
·
29 revisions
- 3.1.25 - Google IMA compatibility improvements - support for duration() and currentPlaybackTime()
- 3.1.24 - Additional NPE Guards
- 3.1.23 - VAST dead end handling improvements
- 3.1.22 - Ability to pause/unpause and check the current status of IMA ad breaks
- 3.1.21 - Dependency updates
- 3.1.20 - Fix behaviour with no ad wrappers
- 3.1.19 - Additional ad tracking events
- 3.1.18 - Updated ExoPlayer
- 3.1.16 - Removed MRAID components in violation of Google Play policies
- 3.1.15 - On demand VAST ad resolution
- 3.1.14 - Advanced viewability tracking
- 3.1.13 - Fire click tracking beacons on demand
- 3.1.12 - Trim tracking URLs before firing
- 3.1.10 - Player stability improvements
- 3.1.9 - Added ADBREAK_TRIGGERED and AD_REQUESTED events
- 3.1.8 - Fix for invalid "progress" (missing offset) VAST tracking events
- 3.1.7 - Fullscreen transition regression fix.
- 3.1.6 - Added Google IMA support as an alternative to the Veeplay VAST parser.
- 3.1.5 - Support for programatically showing and hiding controls
- 3.1.2 - Target SDK level increased to 29. Re-enabled Youtube overlay. General code cleanup.
- 3.1.1 - Native Google Cast extension support. Memory and performance optimizations. Switched to AndroidX libraries instead of the deprecated "Android Support" libraries. Compatibility checks should be run before publishing to production, please let us know if you encounter any issues.
- 3.0.10 - Support changing the inline container while being in fullscreen mode. Bugfix for very long-running VAST retrieval processes.
-
3.0.9 - Add support for
leaveFullscreenOnStop
- 3.0.8 - Additional stability fixes
- 3.0.7 - Android Pie updates regarding deprecated Apache HTTP client.
- 3.0.6 - Android Pie updates regarding deprecated Apache HTTP client.
- 3.0.5 - Veeplay SSAI support, better logging and crash handling when receiving invalid tracking URLs, other minor bugfixes
- 3.0.4 - NPE crash bugfixes
- 3.0.1 - Bugfixes in VAST4 macro replacements.
- 3.0.0 - BETA. Added ExoPlayer 2.x renderer, support for VAST 4.1, support for CMAF streaming, major code cleanup. Most developer-facing APIs remain in place.
- 2.1.51 - Bugfix for NPE crash during VAST 4.0/4.1 Viewability check
- 2.1.50 - Updated to modern OkHttp version, refactored the player-side HTTP client in order to provide maximum SSL compatibility and to minimize the possibility of crashes due to HTTP exceptions.
- 2.1.45 - VAST 4.0 support
- 2.1.44 - Added ability to prefer the MediaPlayer based renderer instead of the ExoPlayer one.
- 2.1.43 - Minor bugfixes and dependent library updates
- 2.1.41 - Unified behaviour of HTTP User Agent in requests made for retrieving JSON configurations, VAST tags & tracking or any non-streaming related HTTP requests
- 2.1.39 - Bugfix for crash in case of AdBreaks configured without any url
- 2.1.38 - Performance optimizations for fullscreen transitions when using web-based renderers
- Stability improvements / bugfixes
- added support for the Google Cast plugin
- updated Youtube API adding support for Lollipop
- updated supported color formats for Controls and Text overlays (RGBA, RGB, #RGBA and #RGB)
- minor bugfixes and API improvements
- bugfix - cloning a unit did not also copy over the unit manager
- added support for multiple renderers. By default, VeePlay ships with two default renderers, MediaPlayerRenderer (used automatically for 4.0.x devices) and ExoPlayerRenderer(used automatically for 4.1+ devices)
- APSMediaUnit objects now hold a renderer string property. In order to explicitly set a renderer, use the static rendererIdentifier string of the renderer class.
- bugfix - transitioning to full screen and then changing orientation could cause an exception
- Improved HLS support for 4.1+ devices
- Shorter buffering times
- Support for 3rd party renderers. In order to plug a player for rendering content, it's a question of implementing IVeeplayRenderer and registering it with the player
- Accuracy to the second when seeking
- Native support for DASH and SmoothStreaming is now possible (if interested in this feature please contact office@veeplay.co)
- Widevine DRM support is now possible (if interested in this feature please contact office@veeplay.co)
- Faster transition to higher bitrate streams (it takes about 4-6 seconds to switch streams)
- this version is a release candidate. Altough it was extensively tested over the past few weeks, it should be tested with each implementation before deploying into production
- bugfix - finishing the player during playback might cause a crash
- major internal player refactoring to allow multiple renderers, in preparation for ExoPlayer support
- bugfix: events with a high number of VAST sources might time out prematurely, causing them to be skipped
- bugfix: calling getCurrentPosition during a unit transition might have caused a crash
- increased default preload time to 10 seconds
- bugfix: calling resumePlay() before the VeePlay surface view was created would trigger an error and skipping to the next unit.
- improved stability and support for surface view state changes
-bugfix: setting an adbreak offset larger than 1 hour caused the offset to be marked as null.
- units generated by the VAST parser now contain a metadata key "source_url", populated with the URL of the VAST feed that originated that unit
- bugfix: seeking while paused caused isPlaying() to return true
- bugfix: when providing autoplay: false for a unit, the Livestream time would start upon preparation, in case duration is not available.
- kAPSMetadataCurrentAdBreakOffset metadata values are now integers
- bugfix -> using autoplay=false and an initialPlaybackTime on pre 5.0 caused the video to start from the beggining
- seekTo optimizations.
- Bugfixes addressing crashes during midroll adbreak transitions
- ActionDelegate interface: respondTo now returns a boolean
- Click tracking for action delegates is only triggered if respondTo returns true
- Bugfix for VAST fallbacks
- Added the OKHttp library from Square
- Switched VAST tracking events to the OKHttp client, solving a random behaviour caused by HttpUrlConnection in connection with some devices and some proxy servers (f.e HTC Device and Charlesproxy)
- Bugfix: Multiple tracking URLs for the same event would override each other
- Bugfix: Preventing the countdown timer to go below 0 while rebuffering
- Preferring MP4 ads over HLS ads through Google DFP
- Bugfix: When foregrounding an activity containing a player instance, the playback could have spontaneously resumed when playing a Marlin DRM encoded stream, or a normal HLS stream.
- Added a metadata field to each ad unit "source_index". This key can be used for identifying the source of an ad in an adbreak, when using multiple sources per adbreak.
- Added a metadata field (HashMap<String, Object>) for APSVastAdbreak object (should be constructed before usage). If used, it will add any keys set to the metadata of each APSMediaUnit generated by the adbreak object
- APSMediaPlayer._overlaysDisplayed is now a public field
- Unit metadata keys now contain integers exclusively for determining the offset. The values for prerolls and postrolls are static (0 and Integer.MAX_VALUE)
- Modified the onTrackingReceived header, it now only accepts two parameters: MediaEventType type and Bundle additionalInfo. The additionalInfo bundle contains by default the old parameters received by onTrackingReceived, on the "urls" and "description" keys.
- Added the CLOCK_TICK event, an event that is fired every second the player is active.
- Added two keys to the additionalInfo Bundle for the CLOCK_TICK event: "position" and "duration", containing two integers (the current position in seconds, and the current content duration, in milliseconds)
- Added two events for detecting user interaction for pausing and resuming playback. The two events are USER_PAUSE and USER_UNPAUSE and are triggered by interacting with the pause button in the controls overlay
- Fixed detecting the content position an adbreak has started at. Each ad content unit contains a metadata key called "aps_vast_adbreak_offset" that holds the offset the ad break has actually started at.
- Bugfix for statically positioned midrolls
- Bugfix for detecting playback state after seek (the player always returned false)
- Added a bugfix for a crash during player finish
- Added seek handling support: by default, the player will only play the last scheduled adbreak, when seeking. This can be configured via the APSMediaUnit#seekHandling field, or using the JSON configuration, on the content unit: "seekAdHandling": "last" (/first/all)
- Added automatic ad breaks positioning: a minimum initial offset, minimum final offset and minimum interval between ad-breaks can be set (all default to 300 seconds). Ad breaks that are not configured with an offset will be automatically scheduled based on these three parameters.
- Added the FORWARD event, for detecting forward seeks
- The SurfaceView is now secure, by default, on devices with API level > 17. This behaviour can be changed by calling APSMediaPlayer#setSecureSurfaceView(false) before initializing the player.
- Added unit and overlay metadata keys for current adbreak offset
- Unit metadata is now copied for unit clones
- Added a bugfix preventing seeking past the end of a video unit
- Added the PLAYLIST_FINISHED trackable event for detecting the end of the playback of the last unit in the playlist
- Re-implemented full-screen mode toggling
- Bug fixes for text and skip overlays
- Bugfixes affecting multiple ads in an adbreak
- Addressed a bug causing a crash when toggling full-screen mode.
- Added a more detailed error message for invalid licenses
- Units, Overlays and AdBreaks are now APSMediaEvent instances. This allows just-in-time VAST/VMAP feed retrieval, as well as banner preloading on Image overlays
- APSMediaBuilder#mediaUnits and APSMediaPlayer#playMediaUnits now accept ArrayList
- APSMediaUnit, APSMediaOverlay and APSVastAdBreak are now members of the com.appscend.media.events package
- APSMediaEvents has ben renamed to APSMediaTrackingEvents
- Minor bugfixes for DRM managers
- APSMediaEvents definitions are now an Enum instead of String constants
- Player events are no longer local broadcasts but implement a Listener model. Please implement the new APSMediaPlayerTrackingEventListener interface and review the APSMediaEvents documentation if upgrading from older versions
- Fixed a bug where events were not emitted if no tracking urls were defined
- Fixed a bug where controls were not shown when building an APSMediaUnit instance and not setting an autohide duration
- Fixed a bug preventing events to be dispatched
- Replaced JS YouTube API with the Android YouTubeAPI (if upgrading from 1.8.3 or older, please add your YouTube API key when initialising the player)
- Added support for the Marlin DRM Plugin
- Improved support for playing HLS / M3U8 streams
- Configurable livestream indicator in controls overlay
- Support for midrolls and overlays
- Support for youtu.be URLs in the Youtube Overlay Controller
- Added a configurable flag for disabling the player on rooted phones
- Added methods for explicitly entering or exiting full-screen mode
- Support for configuring actions when dismissing clicked overlays / linears
- Metadata support for units and overlays
- Corrected the aspect ratio of Webview buttons
- Configurable preferred video mime types
- Improved support for tracking royalties