Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[APT-10204] pass loadcontrol to exoplayer #35

Merged
merged 4 commits into from
Jun 27, 2024

Conversation

griffinfscribd
Copy link
Contributor

@griffinfscribd griffinfscribd commented Jun 27, 2024

Jira ticket

https://scribdjira.atlassian.net/browse/APT-10204

Description

This PR reverts the changes from this other PR #34 since it may have been leading to progress not being accurately reported by armadillo player, resulting in user losing listening progress. Will restore the bug fix from 1.3.2 if investigate and find it was not the cause of the progress loss.

This PR also introduces a way for the client using the armadillo player to pass in parameters for the load control applied to the exo player instance. This will allow users to have more control over the buffering strategy of the exo player when streaming audio.

@griffinfscribd griffinfscribd force-pushed the griffinf/APT-10204-pass-loadcontrol-to-exoplayer branch from 64a5215 to 1b2f073 Compare June 27, 2024 01:07
@griffinfscribd griffinfscribd changed the title Griffinf/apt 10204 pass loadcontrol to exoplayer [APT-10204] pass loadcontrol to exoplayer Jun 27, 2024
@griffinfscribd griffinfscribd force-pushed the griffinf/APT-10204-pass-loadcontrol-to-exoplayer branch from 1b2f073 to 9bf48ab Compare June 27, 2024 18:46
@griffinfscribd griffinfscribd marked this pull request as ready for review June 27, 2024 19:03
@SeanoAndroid SeanoAndroid self-assigned this Jun 27, 2024
@@ -138,10 +134,11 @@ internal class MediaSessionCallback(private val onMediaSessionEventListener: OnM
onStop()
}

@Suppress("UNCHECKED_CAST") val initialOffset = extras.getSerializable(Constants.Keys.KEY_INITIAL_OFFSET) as Milliseconds
val config = extras.getSerializable(Constants.Keys.KEY_ARMADILLO_CONFIG) as ArmadilloConfiguration
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any way this could be missing?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't believe so, but better to err on the safe side. In case it's missing from the bundle, it'll come back as null, so I'll provide a default value for the config.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, depends on what direction you wanna go with it

If there is no way it could be missing, can probably go with what you had before and we'll just get hit with a NPE or typecast exception we can investigate if there's a problem. Keeps the code simpler and confidently shows clear intent of how it's working/what should be happening

Having a fallback is safe, but it also obscures when something is wrong, so usually good to pair with logging an event to our dashboard. Not sure if we do that in Armadillo without it throwing an error that might stop the player

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applying that to the config, I feel like it makes sense that I should always be expecting the configuration for the audio playable so I'll go with the former. And good point about fallback possibly obscuring errors.

@griffinfscribd griffinfscribd force-pushed the griffinf/APT-10204-pass-loadcontrol-to-exoplayer branch from a4d2fef to 9bf48ab Compare June 27, 2024 21:08
@griffinfscribd griffinfscribd merged commit b024097 into main Jun 27, 2024
10 checks passed
@griffinfscribd griffinfscribd deleted the griffinf/APT-10204-pass-loadcontrol-to-exoplayer branch June 27, 2024 21:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants