Skip to content
This repository has been archived by the owner on Jan 16, 2024. It is now read-only.

v1.3

Compare
Choose a tag to compare
@kencecka kencecka released this 11 Dec 14:29
· 60 commits to master since this release

Enhancements

  • ContextManager now passes the namespace/name of the desired state to StateProviderInterface::provideState(). This is helpful when a single StateProvider object provides multiple states, and needs to know which one ContextManager is asking for.
  • The mime parser was hardened against duplicate boundaries.
  • Added functionality to add and remove AudioPlayer observers to the DefaultClient.
  • Unit tests for Alerts were added.
  • Added en-IN, en-CA and ja-JP to the SampleApp locale selection menu.
  • Added default alert and timer audio data to the SDK SampleApp. There is no longer a requirement to download these audio files and configure them in the json configuration file.
  • Added support in SDS Reader and AttachmentReader for seeking into the future. This allows a reader to move to an index which has not yet arrived in the SDS and poll/block until it arrives.
  • Added support for blocking Writers in the SharedDataStream class.
  • Changed the default status code sent by MessageRequestObserverInterface::onSendCompleted() to SERVER_OTHER_ERROR, and mapped HTTP code 500 to SERVER_INTERNAL_ERROR_V2.
  • Added support for parsing stream duration out of playlists.
  • Added a configuration option ("sampleApp":"displayCardsSupported") that allows the displaying of display cards to be enabled or disabled.
  • Named Timers and Reminders have been updated to fall back to the on-device background audio sound when cloud urls cannot be accessed or rendered.

Bug Fixes

  • Removed floating point dependencies from core SDK libraries.
  • Fixed bug in SpeechSynthesizer where it's erroneously calling stop more than once.
  • Fixed an issue in ContentFetcher where it could hang during destruction until an active GET request completed.
  • Fixed a couple of parsing bugs in LibCurlHttpContentFetcher related to case-sensitivity and mime-type handling.
  • Fixed a bug where MediaPlayerObserverInterface::onPlaybackResumed() wasn't being called after resuming from a pause with a pending play/resume.
  • Fixed a bug in LibCurlContentFetcher where it could error out if data is written to the SDS faster than it is consumed.
  • The GStreamer-based MediaPlayer reference implementation now uses the ACL HTTP configured client.
    • An API change has been made to MediaPlayerInterface::setSource(). This method now takes in an optional offset as well to allow for immediately streaming to the offset if possible.
    • Next and Previous buttons now work with Audible.
    • Pandora resume stuttering is addressed.
    • Pausing and resuming Amazon music no longer seeks back to the beginning of the song.
  • libcurl CURLOPT_NOSIGNAL option is set to 1 (https://curl.haxx.se/libcurl/c/CURLOPT_NOSIGNAL.html) to avoid crashes observed in SampleApp.
  • Fixed the timing of the PlaybackReportIntervalEvent and PlaybackReportDelayEvent as specified in the directives.
  • Fixed potential deadlocks in MediaPlayer during shutdown related to queued callbacks.
  • Fixed a crash in MediaPlayer that could occur if the network is disconnected during playback.
  • Fixed a bug where music could keep playing while Alexa is speaking.
  • Fixed a bug which was causing problems with pause/resume and next/previous with Amazon Music.
  • Fixed a bug where music could briefly start playing between speaks.
  • Fixed a bug where HLS playlists would stop streaming after the initial playlist had been played to completion.
  • Fixed a bug where Audible playback could not advance to the next chapter.
  • Fixed some occurrences of SDK entering the IDLE state during the transition between Listening and Speaking states.
  • Fixed a bug where PlaybackFinished events were not reporting the correct offset.
    • An API change has been made to MediaPlayerInterface::getOffset(). This method is now required to return the final offset when called after playback has stopped.
  • Fixed a problem where AIP was erroneously resetting its state upon getting a cancelDirective() callback.

Known Issues

  • Capability agent for Notifications is not included in this release.
  • ACL's asynchronous receipt of audio attachments may manage resources poorly in scenarios where attachments are received but not consumed.
  • GUI cards don't show for Kindle.
  • The new SpeechSynthesizerState state values GAINING_FOCUS and LOSING_FOCUS were added as part of a work-around. The will likely be removed in subsequent releases.
  • With the gstreamer-based MediaPlayer, after muting and unmuting, the next item starts playing rather than continuing with the current item.