For recent release notes, please see:
https://stacks.targetr.net/assets/help/release.html
Android ExoPlayer release notes prior to January 2020
Version 8.4 - 2019-12-14
- When downloading blobs locally via p2p, priority is given to using peers that have complete and verified blobs (rather than incomplete, unverified blobs which could be corrupted).
- WebView JavaScript interface
getData()
function will also search main sequence data if requested data is not found in screen data, current item data or current sequence data.
Version 8.3 - 2019-11-10
- Added support for barcode readers that use TAB as a termination character.
- Added
systemCpuTemp
,systemDisplayMode
andsystemLoadAverage
to screen data. Data taken from/sys/class/thermal/thermal_zone0/temp
,/sys/devices/virtual/display/HDMI/mode")
and/proc/loadavg
respectively. Please note the availability of this information is dependent on Android version and hardware configuration. - RS232 monitored and text lines added to rs232input in screen data. (Most recently received ASCII line)
- Added support for RS232 input triggers to event system.
- Added support for regular expression matching to barcode, NFC and RS232 pattern scanning.
Version 8.2 - 2019-10-03
- Fixed problem with deeply nested inner sequences skipping items (see server notes 7.6.9).
- Fixed problem fetching recently updated screen data using JavaScript interface.
Version 8.1 - 2019-09-13
- Fixed problem preventing events added to the screen from firing.
Version 8.0 - 2019-09-04
- Local web server added. Enable by adding
localWebServerPort=9090
- View and watch live logging information.
/log
- View contents of local blobstore and download status.
/blobstore/
- Access media in the local blobstore.
/blobstore/[blob-id]
- Access current player state.
/player-state
- View and watch live logging information.
- DS Loader does not stop running when launching another activity from an event with a resume delay set. DS Loader will return to the foreground after the configured resume delay.
- Scrolling text is hidden when
blackCondition=true
. - Google ExoPlayer library updated to version 2.10.4
Version 7.2 - 2019-08-13
- Downloads are saved to the blobstore location with most available storage.
- Storage cleanup triggered when storage used exceeds
cleanupThreshold
. For example,cleanupThreshold=0.8
performs cleanup when a blobstore location exceeds 80% of the available storage. Cleanup will delete unused, cached BLOBs. - Fixed possible delete and download loop when a blobstore location has inadequate storage available. The measurement for preallocated storage was incorrect, this could lead to blobstore locations marked as inadequate when they met the storage requirements.
Version 7.1 - 2019-06-25
- Fixed event duplication problem that subsequently caused double execution of triggered actions.
Version 7.0 - 2019-06-22
- Duplicate, matching triggers can now execute multiple actions. Prior to this release, a trigger would only execute the the first action in event list. Please check interactive configurations that use multiple events as this change could have unexpected consequences if there is a reliance on subsequent actions not executing.
- Data from base sequences added to playback data and accessible via JavaScript interface.
- Fixed problem displaying single web pages on Android 9 (API level 28) and above. (Caused by disabled MIME type sniffing so pages rendered as
text/plain
) - Changed default WebView cache to 20 views. (
webviewReuse=20
) - Changed webview caching behaviour to support redirects from the initial page.
- Fixed problem where web pages configured as non-interactive could be interacted with.
- Fixed problem where web page DigitalSignageStartCallback could be called before page loaded.
- Added F10 key to ask exit.
- Local display report file deleted when
report=false
set in screen data. - New display records with date prior to 2019-01-01 ignored. Assumes system clock failure.
- New display records with date prior to
lastDisplayRecordMillis
ignored.
Version 6.2 - 2019-06-04
- Added support for
fullscreenWarningText
to display full screen warning.
Version 6.1 - 2019-05-31
- If counting storage takes over 10 seconds, a storage cleanup is triggered. Cleanup will delete unused, cached BLOBs.
- Added support for
Uri
to extra STREAM intent.
Version 6.0 - 2019-05-29
- Google ExoPlayer library updated to version 2.10.1
- Invalid BLOB download responses aborted prior to downloading body. (Content-Length header must match expected length)
- Stored BLOBs larger than length defined by BLOB ID are deleted.
- Duplicate BLOBs found in multiple local blobstores deleted. If BLOBs are incomplete, only largest BLOB is kept.
Version 5.3 - 2019-05-23
- Fixed problem creating display report records for items that were not using the exoplayer for playback. (Images and webpages)
Version 5.2 - 2019-05-15
- Added support for launching custom Android Intents.
- Added support for displaying a local camera stream on the screen. To configure, add an item to display streaming media with the address
camera://0
orcamera://1
Version 5.1 - 2019-05-03
- Google ExoPlayer library updated to version 2.9.6
- Outbound connections to blobstores and stacks servers now include
Referer
header set to the cloud config address andUser-Agent
header set to player version and android version. This will be useful for stats and fault finding.
Version 5.0 - 2019-01-13
- Google ExoPlayer library updated to version 2.9.3
- Playback speed adjustments only made if ConcatenatingMediaSource is 2% out of time.
- Maximum ConcatenatingMediaSource size set to 1000. After displaying 1000 media items in succession a new ExoPlayer instance will be used.
- If ConcatenatingMediaSource is not at last item when next item is being prepared a new exoplayer instance will be used to fix scheduling problems.
- Fixed problem with barcode scanning.
Version 4.9 - 2018-12-30
- The add data action is followed by an automatic refresh of the current slot in sequence. This allows conditions in current slot to be re-evaluated and an alternate item to be selected. Typical use case is to select a different language.
- Fixed touch event handling when hidden cached views are still in the view hierarchy above current view.
Version 4.8 - 2018-12-14
- Fixed problem that prevented touch events on composite items that contained no images from triggering.
- Resume delay now branches back to main sequence. Behaviour now matches standard player.
- Fixed several issues when branching back from event actions.
- Fixed issue with sequences starting with a composite item when a sequence frame is enabled.
Version 4.7 - 2018-11-26
- Standby black screen option is now always black, overriding any custom background colour that has been set in screen data.
Version 4.6 - 2018-11-14
- Fixed problem processing GPS location on devices set to a locale that uses a comma as a decimal separator.
Version 4.5 - 2018-10-08
- Added tilde support for passing data through to custom media streaming URLs. For example, the following URL will be updated to replace
~screenId
with the screen ID of the active player:http://www.example.com/video?screenId=~screenId
. - Added support for receiving data and triggers over the local network. This enables sending GPS location from a separate device on the local network. Contact us for GPS sending APK.
Version 4.4 - 2018-09-12
- The reported values for free storage space are now more accurately updated when custom settings are applied to
blobstoreInternal
,blobstoreExternal
andblobstoreDir
.
Version 4.3 - 2018-08-23
- Google Exoplayer library updated to version 2.8.4
- When
collectGps=true
the GPS location is stored periodically on the device. This stored GPS location is then reused following a device restart until an accurate GPS fix is obtained.
Version 4.1 - 2018-08-09
- GPS data no longer added to collected data report when
collectGps=true
is set. This is no longer necessary as the GPS coordinates are added to the display report. - Added
requiredGpsAccuracy
to support setting the accuracy required for GPS to be updated. Default is 50 meters. - Fixed problem sending display report records when some records contained GPS and some did not. This resulted in sending duplicate entries with the wrong GPS data if no GPS was available when player starts.
- Enhanced how dynamic clock is set after restarting the app using server time offsets.
Version 4.0 - 2018-07-26
- Changed video playback stall detection to be less strict to reduced unecessary restarts on slow devices.
- Fixed restart caused by specifying a BLE config when no supported hardware on device.
- Added support for displaying HDMI input directly on the screen (pass-through).
- Configured by adding a resource with a streaming media address of
hdmi://zidoo
. - Designed for Zidoo X9s (Realtek chipset).
- Please note: Zidoo X9s can not play HDMI IN at the same time as another video. (waiting for new firmware)
- Configured by adding a resource with a streaming media address of
Version 3.1 - 2018-07-12
- Added support for checking if GPS is inside a polygon for advanced conditions -
gpsInside(lat1,lng1,lat1,lng2,lat1,lng2)
- Key event handling updated. Recommend using android-player-17.1.apk if interactivity is required.
Version 3.0 - 2018-06-28
- Google ExoPlayer library updated to version 2.8.2
- Added new screen data option
reportOptions=verifyClock
to prevent storing reporting records and collecting data if the clock has not be verified as correct. - Monitors custom media sources for completion and can trigger progression.
- Built with Gradle 3.1.3 and Android tools 27.0.3
Version 2.2 - 2018-06-28
- Updated how display report data and collected data is parsed and sent to the server.
- Added more logging for player communications.
Version 2.1 - 2018-06-15
- Limited gapless playlist to 100 items before reinitialising ExoPlayer component (previously 1000). Long playlists appears to cause stutter sometimes.
- Added more logging for NFC detection.
Version 2.0 - 2018-06-06
- Downloading prioritises active items and fills storage with scheduled items ordered by start date. This enables using sequences larger than the storage available on the device providing storage is sufficient for active items at any single point in time. Remaining storage is used for as many scheduled items as possible.
- When storage is full, the cleanup routine only deletes items necessary to download active items.
- Items scheduled later are deleted to make space for items scheduled sooner.
- Data sharing via p2p optimised to support larger networks of screens. Peer request list limited to 8 blobs. When localPeerCount exceeds 8, random silencing reduces number of concurrent peer responses.
Version 1.4 - 2018-05-16
- Attempts to recover from situation where player start() called twice from DS Loader.
- Double start could result in a duplicate display records.
- When
collectGps=true
one duplicate record will be missing GPS. - Issue more likely to occur on mobile data networks.
Version 1.3 - 2018-05-08
- Collected data report corruption issue fixed.
Version 1.2 - 2018-05-03
- Added workaround for proxies and firewalls that remove the Range header from requests. Download resuming not possible in such situations.
- Added additional 5 second delay after download failures to prevent network overload.
- Added
hdmiState
to screen data to report HDMI connection status.
Version 1.1 - 2018-03-02
- GPS location stored in display records when
collectGps=true
added to screen data. Note: when downgrading, previously saved display records containing GPS data will be lost. - Added
getScreenData(...)
to JavaScript interface. - Added support for sending an RS232 command at startup by adding
rs232outputAtStart=...
to screen data.
Version 1.0 - 2018-03-02
- GPS values now use 5 decimal places in both screen data and collected data. Assuming hardware capable, this is an accuracy of 1.1 meters. Extra decimal places no longer sent to server.
- The Android boot time is now added to screen data as
hardwareBootMillis
. This will allow a app restart to be differentiated from a device restart. - Scrollbars on WebViews now hidden unless resource is marked as interactive.
- After 4 months of testing, player has been promoted to version 1.0, stable status.
Version 0.12 - 2018-02-21
- After instructing exoplayer to start a video, an extra check is made to verify the video is playing . If the video fails to start, the app will restart.
Version 0.11 - 2018-01-24
- Fixed problem where a duplicate report record was generated if an item was inside inner sequences and the item referring to the inner sequence had reporting enabled. This player version will not create the duplicate but will create a report record for the item referring to the inner sequence and items inside the inner sequence as expected.
- The
sequenceId
field in display reports and collected data reports is no longer used. ThesequenceId
is now derived using theitemId
and ItemInfo metadata. This means report storage and sending is more efficient. - Removed unused field
sequenceId
from StackItem.
Version 0.10 - 2017-11-23
- Added support for
report=false
to screen data. This option will disable reporting entirely. - Prevented reporting on items referring to inner sequences if there are no items ready to be displayed.
- When severe problems occur or main thread stalls, the player will auto restart and resume from the next slot. This should ensure the full sequence does get displayed rather than restarting at slot 1.
- Modified the download decision logic to prioritise a large blob transfer if none active. This should make better use of bandwidth initially when many small blobs are queued.
- Added branch back button
- Added default interaction animations
Version 0.9 - 2017-11-15
- Fixed restart problem caused by adding inner sequence to a sequence frame.
- Added Samsung RS232 Screen control.
Version 0.8 - 2017-10-21
- Fixed problem with playback data collection that could result in missing entries if playback sync enabled.
- Only prints insufficient storage warnings in logs if all storage locations are full.
Version 0.7 - 2017-10-20
- Added additional check to confirm video is playing before playback reporting.
- Reduced default buffers for ExoPlayer. Only small buffers needed since playback is from local files.
Version 0.6 - 2017-10-17
- Added playback reporting.
- Added additional logging to monitor playback state changes.
Version 0.5 - 2017-10-12
- Added support for showing labels.
- Fixed playback synchronisation issue when multiple devices on same network played different root sequences.
Version 0.4 - 2017-10-12
- Improved interactivity support.
Version 0.3 - 2017-09-22
- Fixed problem playing short videos less than 5 seconds.
- Fixed problem with sequence frame not filling screen if resolution changes while running.
- Added playback speed adjustment to more accurately synchronise gapless playback. Strategy:
- 3 seconds before current video due to finish, the predicted end time is compared to desired end time and video speed is adjusted to meet desired end time. This improves the start time accuracy of the next video.
Version 0.3 - 2017-09-22
- Fixed problem causing videos with subtitles to stall.
- Added support for remote API triggers.
Version 0.2 - 2017-09-20
- Linked events mechanism with new views.
- Added WebView support and view recycling/caching.
Version 0.1 Pre-release
- Replaced Android VideoView with ExoPlayer.
- Rewrote all views to support preparing ahead of time for quick view switching.
Comments
0 comments
Please sign in to leave a comment.