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

Certification failed due to offset report not correct when playing music #973

Closed
8 tasks
subjectxbj opened this issue Sep 20, 2018 · 16 comments
Closed
8 tasks

Comments

@subjectxbj
Copy link

subjectxbj commented Sep 20, 2018

IMPORTANT: Before you create an issue, please take a look at our Issue Reporting Guide.

Briefly summarize your issue:

AVS certification team reported some blocker bugs on our unit. Some are related with the offiset report when playing music.

Issue 1: "progressReportDelayElapsed" is sent before "playbackStarted".

I checked the code, seems the timer of "progressReportDelayElapsed" is started right after receiving the "Play" directive. But actually the alexa client will take some seconds to download the audio stream and then start play and send "playbackStarted" once the audio is actually played. So if the value of "progressReportDelayInMilliseconds" is small, then it is very likely that the "progressReportDelayElapsed"is sent before "playbackStarted".

So is this really a bug?

Also seems the offset in playbackFinished event is not correct.
{noformat}
Actual logs :

17:29:12.542 play the song the devil in i by slipknot from my music library
{color:#d04437}17:29:25.459 progressReportDelayElapsed 1764 - sent before playbackStarted {color}
17:29:26.685 playbackStarted 0
17:29:51.101 stop
17:29:53.371 playbackStopped 25774
17:30:14.128 alexa resume
17:30:19.161 playbackStarted 25774
{color:#d04437}17:35:38.331 playbackNearlyFinished 24250 - wrong offset{color}
{color:#d04437}17:35:38.636 playbackFinished 24250 - wrong offset{color}

Expected logs :

17:29:12.542 play the song the devil in i by slipknot from my music library
17:29:26.685 playbackStarted 0
17:29:51.101 stop
17:29:53.371 playbackStopped 25774
17:30:14.128 alexa resume
17:30:19.161 playbackStarted 25774
{color:#d04437}17:35:38.331 playbackNearlyFinished 344774 - correct offset{color}
{color:#d04437}17:35:38.636 playbackFinished 344774 - correct offset{color}

{noformat}

I checked the AVSonline document, it mentioned 👍
https://developer.amazon.com/zh/docs/alexa-voice-service/audioplayer.html#progressreportintervalelapsed

 For example, if the Play directive contains progressReportDelayInMilliseconds with a value of 20000, the ProgressReportDelayElapsed event must be sent 20,000 milliseconds from the start of the track. However, 

That means the ProgressReportDelayElapsed event should be sent start from the real audio play. In that case, I think this is e SDK bug.

What is the expected behavior?

What behavior are you observing?

Provide the steps to reproduce the issue, if applicable:

Tell us about your environment:

What version of the AVS Device SDK are you using?

  <x.y.z>

Tell us what hardware you're using:

  • Desktop / Laptop
  • Raspberry Pi
  • Other - tell us more:

Tell us about your OS (Type & version):

  • Linux
  • MacOS
  • Raspbian Stretch
  • Raspbian Jessy
  • Other - tell us more:
@subjectxbj
Copy link
Author

subjectxbj commented Sep 20, 2018

I put the client side log:

......................Receive Play directive.............................
2018-09-20 09:30:23.243 [ 13] 9 AudioPlayer:PLAY:payload={"audioItem"\:{"audioItemId"\:"amzn1.as-ct.v1.Dee-Domain-Music#ACRI#url#ACRI#1ea5a934-c149-4bfb-aa50-817c5bf0156b\:1"\,"stream"\:{"offsetInMilliseconds"\:0\,"expiryTime"\:"2018-09-20T09\:31\:18+0000"\,"progressReport"\:{"progressReportDelayInMilliseconds"\:1000}\,"url"\:"https\://d29r7idq0wxsiz.cloudfront.net/DigitalMusicDeliveryService/HPS.m3u8?m\=m&dmid\=250453756&c\=cf&f\=ts&t\=10&bl\=256k&s\=true&e1\=1537437600000&e2\=1537437600000&v\=V2&n\=PSLZCFV4MKJSC&h\=6064107004c71363886b2d8007dc7b65fb8a12e1754a33f04e52f64bd4761c3f"\,"token"\:"amzn1.as-ct.v1.Dee-Domain-Music#ACRI#url#ACRI#1ea5a934-c149-4bfb-aa50-817c5bf0156b\:1"}}\,"playBehavior"\:"REPLACE_ALL"}
2018-09-20 09:30:23.245 [ 13] E JsonUtils:findNodeFailed:reason=missingDirectChild,child=streamFormat
2018-09-20 09:30:23.246 [ 13] E JsonUtils:findNodeFailed:reason=missingDirectChild,child=progressReportIntervalInMilliseconds
2018-09-20 09:30:23.248 [ 13] E JsonUtils:findNodeFailed:reason=missingDirectChild,child=expectedPreviousToken
............... Semd ProgressReportDelayElapsed event.........
2018-09-20 09:30:24.452 [  c] 1 AudioPlayer:sendEventWithTokenAndOffset:eventName=ProgressReportDelayElapsed
2018-09-20 09:30:24.454 [  c] 9 MediaPlayer:getOffsetCalled
2018-09-20 09:30:24.455 [  2] 9 AttachmentReaderSource:read:size=0,status=1
2018-09-20 09:30:24.456 [  2] 0 MediaPlayer:handleGetOffsetCalled:idPassed=6,currentId=6
2018-09-20 09:30:24.457 [  2] I MediaPlayer:handleGetOffset:reason=getElementGetStateUnsuccessful,stateChangeReturn=ASYNC
2018-09-20 09:30:24.459 [  c] 0 EventBuilder:buildJsonEventString:messageId=476bd575-4968-4b84-9cdb-4de7c85ff75e,namespace=AudioPlayer,name=ProgressReportDelayElapsed
2018-09-20 09:30:24.460 [  c] 9 HTTP2Transport:enqueueRequest:jsonContent={"event"\:{"header"\:{"namespace"\:"AudioPlayer"\,"name"\:"ProgressReportDelayElapsed"\,"messageId"\:"476bd575-4968-4b84-9cdb-4de7c85ff75e"}\,"payload"\:{"token"\:"amzn1.as-ct.v1.Dee-Domain-Music#ACRI#url#ACRI#1ea5a934-c149-4bfb-aa50-817c5bf0156b\:1"\,"offsetInMilliseconds"\:1432827}}}
.................Send PlaybackStarted event...............................
2018-09-20 09:30:30.179 [  c] 1 AudioPlayer:notifyObserver:playerActivity=PLAYING
2018-09-20 09:30:30.182 [  c] 1 AudioPlayer:sendEventWithTokenAndOffset:eventName=PlaybackStarted
2018-09-20 09:30:30.183 [  c] 0 EventBuilder:buildJsonEventString:messageId=2808b4ca-8d43-4b30-8933-b32fd6c0e03f,namespace=AudioPlayer,name=PlaybackStarted
2018-09-20 09:30:30.179 [  2] 9 AttachmentReaderSource:read:size=4096,status=0
2018-09-20 09:30:30.184 [  c] 9 HTTP2Transport:enqueueRequest:jsonContent={"event"\:{"header"\:{"namespace"\:"AudioPlayer"\,"name"\:"PlaybackStarted"\,"messageId"\:"2808b4ca-8d43-4b30-8933-b32fd6c0e03f"}\,"payload"\:{"token"\:"amzn1.as-ct.v1.Dee-Domain-Music#ACRI#url#ACRI#1ea5a934-c149-4bfb-aa50-817c5bf0156b\:1"\,"offsetInMilliseconds"\:0}}}
................Play finished...................................
2018-09-20 09:36:12.923 [  2] 0 AudioPlayer:onPlaybackFinished:id=6
2018-09-20 09:36:12.924 [  2] 9 MediaPlayer:tearDownTransientPipelineElements
2018-09-20 09:36:12.924 [  c] 1 AudioPlayer:executeOnPlaybackFinished:id=6
2018-09-20 09:36:12.925 [  2] E MediaPlayer:saveOffsetBeforeTeardown - gst_element_query_position failed
2018-09-20 09:36:12.926 [  c] 0 AudioPlayer:changeActivity:from=PLAYING,to=FINISHED
2018-09-20 09:36:12.929 [  c] 0 AudioPlayer:executeProvideState:sendToken=false,stateRequestToken=0
2018-09-20 09:36:12.930 [  c] 9 MediaPlayer:getOffsetCalled
2018-09-20 09:36:12.931 [  2] 0 MediaPlayer:handleGetOffsetCalled:idPassed=6,currentId=0
2018-09-20 09:36:12.932 [  2] E MediaPlayer:validateSourceAndIdFailed:reason=sourceNotSet
2018-09-20 09:36:12.933 [  c] 0 ContextManager:updateStateLocked:action=updatedState,state={"token"\:"amzn1.as-ct.v1.Dee-Domain-Music#ACRI#url#ACRI#1ea5a934-c149-4bfb-aa50-817c5bf0156b\:1"\,"offsetInMilliseconds"\:1185\,"playerActivity"\:"FINISHED"},namespace=AudioPlayer,name=PlaybackState
2018-09-20 09:36:12.934 [  c] 9 MediaPlayer:getOffsetCalled
2018-09-20 09:36:12.936 [  2] 0 MediaPlayer:handleGetOffsetCalled:idPassed=6,currentId=0
2018-09-20 09:36:12.937 [  2] E MediaPlayer:validateSourceAndIdFailed:reason=sourceNotSet
2018-09-20 09:36:12.938 [  c] 1 AudioPlayer:notifyObserver:playerActivity=FINISHED
2018-09-20 09:36:12.939 [  c] 1 AudioPlayer:sendEventWithTokenAndOffset:eventName=PlaybackNearlyFinished
2018-09-20 09:36:12.940 [  c] 9 MediaPlayer:getOffsetCalled
2018-09-20 09:36:12.941 [  2] 0 MediaPlayer:handleGetOffsetCalled:idPassed=6,currentId=0
2018-09-20 09:36:12.942 [  2] E MediaPlayer:validateSourceAndIdFailed:reason=sourceNotSet
2018-09-20 09:36:12.944 [  c] 0 EventBuilder:buildJsonEventString:messageId=68adf663-4cad-484f-b5c7-a0f67c6adff4,namespace=AudioPlayer,name=PlaybackNearlyFinished
2018-09-20 09:36:12.945 [  c] 9 HTTP2Transport:enqueueRequest:jsonContent={"event"\:{"header"\:{"namespace"\:"AudioPlayer"\,"name"\:"PlaybackNearlyFinished"\,"messageId"\:"68adf663-4cad-484f-b5c7-a0f67c6adff4"}\,"payload"\:{"token"\:"amzn1.as-ct.v1.Dee-Domain-Music#ACRI#url#ACRI#1ea5a934-c149-4bfb-aa50-817c5bf0156b\:1"\,"offsetInMilliseconds"\:1185}}}
2018-09-20 09:36:12.946 [  c] 1 AudioPlayer:sendEventWithTokenAndOffset:eventName=PlaybackFinished
2018-09-20 09:36:12.948 [  c] 9 MediaPlayer:getOffsetCalled
2018-09-20 09:36:12.949 [  2] 0 MediaPlayer:handleGetOffsetCalled:idPassed=6,currentId=0
2018-09-20 09:36:12.950 [  2] E MediaPlayer:validateSourceAndIdFailed:reason=sourceNotSet
2018-09-20 09:36:12.952 [  c] 0 EventBuilder:buildJsonEventString:messageId=216b80cd-9d5a-4d2d-88b9-128a4ef6d77e,namespace=AudioPlayer,name=PlaybackFinished
2018-09-20 09:36:12.953 [  c] 9 HTTP2Transport:enqueueRequest:jsonContent={"event"\:{"header"\:{"namespace"\:"AudioPlayer"\,"name"\:"PlaybackFinished"\,"messageId"\:"216b80cd-9d5a-4d2d-88b9-128a4ef6d77e"}\,"payload"\:{"token"\:"amzn1.as-ct.v1.Dee-Domain-Music#ACRI#url#ACRI#1ea5a934-c149-4bfb-aa50-817c5bf0156b\:1"\,"offsetInMilliseconds"\:1185}}}
2018-09-20 09:36:12.954 [  c] 0 AudioPlayer:cancelTimers
2018-09-20 09:36:12.956 [  c] 1 FocusManager:releaseChannel:channelName=Content
2018-09-20 09:36:12.962 [ 10] 0 AudioPlayer:onFocusChanged:newFocus=NONE
2018-09-20 09:36:12.963 [ 10] 5 AudioActivityTracker:notifyOfActivityUpdates
2018-09-20 09:36:12.963 [  c] 1 AudioPlayer:executeOnFocusChanged:from=FOREGROUND,to=NONE,m_currentActivity=FINISHED
2018-09-20 09:36:12.964 [  9] 5 AudioActivityTracker:executeNotifyOfActivityUpdates
2018-09-20 09:36:13.030 [  d] 0 HTTP2Transport:processNextOutgoingMessage:jsonContent={"event"\:{"header"\:{"namespace"\:"AudioPlayer"\,"name"\:"PlaybackNearlyFinished"\,"messageId"\:"68adf663-4cad-484f-b5c7-a0f67c6adff4"}\,"payload"\:{"token"\:"amzn1.as-ct.v1.Dee-Domain-Music#ACRI#url#ACRI#1ea5a934-c149-4bfb-aa50-817c5bf0156b\:1"\,"offsetInMilliseconds"\:1185}}}
2018-09-20 09:36:13.031 [  d] 0 HTTP2StreamPool:getStream:streamId=175,numAcquiredStreams=2
2018-09-20 09:36:13.032 [  d] 9 HTTP2Transport:insertActiveStream:handle=0x56cb4060
2018-09-20 09:36:13.034 [  d] 0 HTTP2Stream:libcurl:streamId=175,text=Found bundle for host avs-alexa-na.amazon.com\: 0x56abdec0 [can multiplex]
2018-09-20 09:36:13.035 [  d] 0 HTTP2Stream:libcurl:streamId=175,text=Conn\: 0 (0x56a89090) Receive pipe weight\: (-1/0)\, penalized\: (nil)
2018-09-20 09:36:13.036 [  d] 0 HTTP2Stream:libcurl:streamId=175,text=Multiplexed connection found!
2018-09-20 09:36:13.037 [  d] 0 HTTP2Stream:libcurl:streamId=175,text=Found connection 0\, with requests in the pipe (1)
2018-09-20 09:36:13.038 [  d] 0 HTTP2Stream:libcurl:streamId=175,text=Re-using existing connection! (#0) with host avs-alexa-na.amazon.com
2018-09-20 09:36:13.039 [  d] 0 HTTP2Stream:libcurl:streamId=175,text=Using Stream ID\: af (easy handle 0x56cb4060)
2018-09-20 09:36:13.618 [  d] 0 HTTP2Stream:receivedRequestId:value=x-amzn-requestid\: 12e565fffeb3b986-000001d6-00622e1e-84679638df626046-b9c597b5-175
2018-09-20 09:36:13.619 [  d] 0 HTTP2Transport:cleanupFinishedStream:streamId=175,result=204
2018-09-20 09:36:13.621 [  d] 0 HTTP2StreamPool:releaseStream:streamId=175,numAcquiredStreams=1
2018-09-20 09:36:13.622 [  d] 0 CurlEasyHandleWrapper:reset:responseCode=HTTP_RESPONSE_SUCCESS_NO_CONTENT
2018-09-20 09:36:13.623 [  d] 0 HTTP2Transport:processNextOutgoingMessage:jsonContent={"event"\:{"header"\:{"namespace"\:"AudioPlayer"\,"name"\:"PlaybackFinished"\,"messageId"\:"216b80cd-9d5a-4d2d-88b9-128a4ef6d77e"}\,"payload"\:{"token"\:"amzn1.as-ct.v1.Dee-Domain-Music#ACRI#url#ACRI#1ea5a934-c149-4bfb-aa50-817c5bf0156b\:1"\,"offsetInMilliseconds"\:1185}}}

  1. Not sure how does the "offsetInMilliseconds" of 1432827 in the event "ProgressReportDelayElapsed" come out since audio is not started yet.
  2. The "ProgressReportDelayElapsed" event started 1 second right after receiving the "Play" directive; But the event "PlaybackStarted" event started 6 seconds later with offset of 0.
  3. When music is finished, it sends the "PlaybackFinished" with offset "1185". this is not correct. "offset" should be the end of the audio stream, which should be a large value. not this "1185".
  4. When I pause the music and resume the music, it can get and report a reasonable offset.

FYI. I'm using gstream 1.12.3
[alexa] / # gst-launch-1.0 --version
gst-launch-1.0 version 1.12.3
GStreamer 1.12.3
http://alpinelinux.org/
[alexa] / #

@scotthea-amazon
Copy link
Contributor

Hello subjectxbj,

Thank you for bringing this to our attention! Can you tell us what version your are experiencing this issue with?

Thank you,
-SWH

@scotthea-amazon
Copy link
Contributor

Hello again subjectxbj,

I was able to reproduce this with v1.9.0. We will continue to investigate.

Thank you again,
-SWH

@subjectxbj
Copy link
Author

@scotthea-amazon,
Thanks for your feedback. I think this issue exist in all releases. Because this part of code seems not changed acrosss all these releases.

Thanks

@visayamv
Copy link
Contributor

Hi @subjectxbj , can you tell me which release version did you use for this case? In v1.90, there was a fix for the incorrect playbackfinished offset.

@visayamv
Copy link
Contributor

The out of order issue could be different

@subjectxbj
Copy link
Author

you tell me which release version did you use for this case? I

Hi @visayamv , I'm using 1.9.0. So it seems this issue still exist on 1.9.0.

@visayamv
Copy link
Contributor

visayamv commented Oct 2, 2018

@subjectxbj ,
When you say:
When I pause the music and resume the music, it can get and report a reasonable offset
Do you mean if you just play the song without doing anything the offset in the playbackfinished event is incorrect, but if you pause and then resume in the middle of playing the music the offset in the playbackfinished event is correct?

@visayamv
Copy link
Contributor

visayamv commented Oct 3, 2018

Hi @subjectxbj , based on your log you have received an error when the playbackfinished event occurred and the offset is being queried from the gstreamer pipeline:

................Play finished................................... 2018-09-20 09:36:12.923 [ 2] 0 AudioPlayer:onPlaybackFinished:id=6 2018-09-20 09:36:12.924 [ 2] 9 MediaPlayer:tearDownTransientPipelineElements 2018-09-20 09:36:12.924 [ c] 1 AudioPlayer:executeOnPlaybackFinished:id=6 2018-09-20 09:36:12.925 [ 2] E MediaPlayer:saveOffsetBeforeTeardown - gst_element_query_position failed
I have tried to reproduce this case, but I was unable to. My step is just by asking 'Alexa play the devil and I by slipknot from Amazon Music' and wait for the music to end.

I was hoping if you can provide additional logging for this as I try to investigate the state of the gstreamer pipeline when this issue happens.

Can you please open the Gstreamer verbose logging and also submit ALL the debug logs generated by SampleApp?

You can do the following:

export GST_DEBUG=6

#On your sample app build directory
./SampleApp -C "your AlexaConfig Json path" -L debug9 2>&1 | tee debug.log

Please reproduce the failure case and upload the debug.log file here.

Thanks!

@subjectxbj
Copy link
Author

@subjectxbj ,
When you say:
When I pause the music and resume the music, it can get and report a reasonable offset
Do you mean if you just play the song without doing anything the offset in the playbackfinished event is incorrect, but if you pause and then resume in the middle of playing the music the offset in the playbackfinished event is correct?

Yes, that is right

@subjectxbj
Copy link
Author

Hi @subjectxbj , based on your log you have received an error when the playbackfinished event occurred and the offset is being queried from the gstreamer pipeline:

................Play finished................................... 2018-09-20 09:36:12.923 [ 2] 0 AudioPlayer:onPlaybackFinished:id=6 2018-09-20 09:36:12.924 [ 2] 9 MediaPlayer:tearDownTransientPipelineElements 2018-09-20 09:36:12.924 [ c] 1 AudioPlayer:executeOnPlaybackFinished:id=6 2018-09-20 09:36:12.925 [ 2] E MediaPlayer:saveOffsetBeforeTeardown - gst_element_query_position failed
I have tried to reproduce this case, but I was unable to. My step is just by asking 'Alexa play the devil and I by slipknot from Amazon Music' and wait for the music to end.

I was hoping if you can provide additional logging for this as I try to investigate the state of the gstreamer pipeline when this issue happens.

Can you please open the Gstreamer verbose logging and also submit ALL the debug logs generated by SampleApp?

You can do the following:

export GST_DEBUG=6

#On your sample app build directory
./SampleApp -C "your AlexaConfig Json path" -L debug9 2>&1 | tee debug.log

Please reproduce the failure case and upload the debug.log file here.

Thanks!

Hi @visayamv ,
I will get back to office next week to try a new build. But for the error log "saveOffsetBeforeTeardown - gst_element_query_position failed". If you take it as the key and search in the all the issues. You will find it is very commonly exist in the logs that are provided by a lot of people. I also noticed this error, but not sure if that is the root cause of this problem.

@visayamv
Copy link
Contributor

visayamv commented Oct 4, 2018

Hi @subjectxbj , that error can appear when the music is paused or has not started yet. It should not fail when the music finishes. I have compared my logs to yours and also noticed this error. The gst_element_query_position failure on saveOffserBeforeTeardown does not appear in my log when the song finishes so it was able to get the offset value properly. But when the song starts or is paused that error appears

@celinval
Copy link
Contributor

celinval commented Oct 9, 2018

Hi @subjectxbj, have you had the chance to try the new build yet?

Thanks!

@subjectxbj
Copy link
Author

Hi @celinval ,
I tested again, and find there is no problem anymore when playback finished. Seems this issue does not happen everytime.

2018-10-23 08:26:16.804 [  4] 9 MediaPlayer:messageReceived:type=eos,source=audio-pipeline
2018-10-23 08:26:16.806 [  4] 0 MediaPlayer:callingOnPlaybackFinished:currentId=7
2018-10-23 08:26:16.807 [  4] 0 AudioPlayer:onPlaybackFinished:id=7
2018-10-23 08:26:16.808 [  4] 9 MediaPlayer:tearDownTransientPipelineElements
2018-10-23 08:26:16.808 [ 15] 1 AudioPlayer:executeOnPlaybackFinished:id=7
2018-10-23 08:26:16.814 [  4] 0 MediaPlayer:saveOffsetBeforeTeardown:offset=343589
2018-10-23 08:26:16.815 [ 15] 0 AudioPlayer:changeActivity:from=PLAYING,to=FINISHED
2018-10-23 08:26:16.817 [ 15] 0 AudioPlayer:executeProvideState:sendToken=false,stateRequestToken=0
2018-10-23 08:26:16.819 [ 15] 9 MediaPlayer:getOffsetCalled

scotthea-amazon added a commit that referenced this issue Oct 24, 2018
Changes in this update:

**Enhancements**

* New optional configuration for [EqualizerController](https://github.com/alexa/avs-device-sdk/blob/v1.10.0/Integration/AlexaClientSDKConfig.json#L154). The EqualizerController interface allows you to adjust equalizer settings on your product, such as decibel (dB) levels and modes.
* Added reference implementation of the EqualizerController for GStreamer-based (MacOS, Linux, and Raspberry Pi) and OpenSL ES-based (Android) MediaPlayers. Note: In order to use with Android, it must support OpenSL ES.
* New optional configuration for the [TemplateRuntime display card value](https://github.com/alexa/avs-device-sdk/blob/v1.10.0/Integration/AlexaClientSDKConfig.json#L144).
* A configuration file generator script, `genConfig.sh` is now included with the SDK in the **tools/Install** directory. `genConfig.sh` and it's associated arguments populate `AlexaClientSDKConfig.json` with the data required to authorize with LWA.
* Added Bluetooth A2DP source and AVRCP target support for Linux.
* Added Amazon for Business (A4B) support, which includes support for handling the new [RevokeAuthorization](https://developer.amazon.com/docs/alexa-voice-service/system.html#revokeauth) directive in the Settings interface. A new CMake option has been added to enable A4B within the SDK, `-DA4B`.
* Added locale support for IT and ES.
* The Alexa Communication Library (ACL), `CBLAUthDelegate`, and sample app have been enhanced to detect de-authorization using the new `z` command.
* Added `ExternalMediaPlayerObserver`, which receives notification of player state, track, and username changes.
* `HTTP2ConnectionInterface` was factored out of `HTTP2Transport` to enable unit testing of `HTTP2Transport` and re-use of `HTTP2Connection` logic.

**Bug Fixes**

* Fixed a bug in which `ExternalMediaPlayer` adapter playback wasn't being recognized by AVS.
* [Issue 973](#973) - Fixed issues related to `AudioPlayer` where progress reports were being sent out of order or with incorrect offsets.
* An `EXPECTING`, state has been added to `DialogUXState` in order to handle `EXPECT_SPEECH` state for hold-to-talk devices.
* [Issue 948](#948) - Fixed a bug in which the sample app was stuck in a listening state.
* Fixed a bug where there was a delay between receiving a `DeleteAlert` directive, and deleting the alert.
* [Issue 839](#839) - Fixed an issue where speech was being truncated due to the `DialogUXStateAggregator` transitioning between a `THINKING` and `IDLE` state.
* Fixed a bug in which the `AudioPlayer` attempted to play when it wasn't in the `FOREGROUND` focus.
* `CapabilitiesDelegateTest` now works on Android.
* [Issue 950](#950) - Improved Android Media Player audio quality.
* [Issue 908](#908) - Fixed compile error on g++ 7.x in which includes were missing.
@celinval
Copy link
Contributor

Happy to hear @subjectxbj! I'm going to close this issue but feel free to reopen it if you find the same problem again.

@visayamv
Copy link
Contributor

@subjectxbj , the out-of-order and incorrect offsets in progressReport* events have been fixed in 1.10. So please upgrade to 1.10.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants