Continuing to work on upgrading Tusky's video playback to Exoplayer.

There are two things I don't understand about Exoplayer:

Why do the controls dim the video when they're visible? https://stackoverflow.com/questions/75514491/why-do-exoplayer-media3-controls-dim-the-video

How do I move the buttons away from the center of the screen? https://stackoverflow.com/questions/75515091/how-to-reposition-exoplayer-media3-control-buttons

Anybody ever worked with Android Exoplayer…?

Why do exoplayer/media3 controls dim the video?

I am using exoplayer2 via androidx.media3:media3-exoplayer:1.0.0-beta03. I have a androidx.media3.ui.PlayerView in my XML layout, and then in my code I am creating an Exoplayer with ExoPlayer.Build...

Stack Overflow
Part of the problem here appears to be the difference between jetpack/media3 and exoplayer. I thought these were supposed to be the same thing, but they have different styling and if I compare the two exoplayer has commits in its github repo more often than jetpack/media3. What is the Actual difference between the two? :(
Reading up on this, it appears that "jetpack media3" is a merging of "exoplayer" with "jetpack media2", so you would not have to worry about whether to use "exoplayer" or "jetpack media2". Except since they are not identical, now I have to worry about whether to use "exoplayer" or "jetpack media3".
Okay making some progress! I think I want a slightly larger margin under the pause control but that's not looking so bad
Got a question about the video in these screenshots, it's this https://mastodon.gamedev.place/@JanOrszulik/109899831098273475
Jan Orszulik (@[email protected])

Attached: 1 image How to visually connect two objects at arbitrary distance in constant time? For example like this. #Precursor #gamedev #indiedev #pixelart #indiegames

Gamedev Mastodon

Android continues innovating strange new ways to make development hard

So get this: Say you want to customize Exoplayer's appearance in any way. The way to do that is to use a file named exo_player_control_view.xml. What "use" means here is: Figure out the EXACT version of Exoplayer you are using, find its EXACT source code git hash on github, find this xml file at a magic location deep in the source, copy it into your project at a magic and seemingly undocumented location, then make changes

If you get the xml file from the wrong version number of Exoplayer, it probably won't work. You must get the file from the correct side of the Exoplayer/Media3 divide; the two look the same for a given version, but internally the xml is quite different. I am trying to create an Exoplayer build as an alternative to our Media3 build, and it's not finding the xml, possibly because the magic location is different, or maybe on the other side of the divide you have to call a function
I wish programming were about like… writing code. Or reading the documentation for an API and then applying what you have read. I do not like "programming" meaning going on a fricking scavenger hunt
@mcc ah yes "convention over configuration".
Very early in my career I explained in great detail to some supposedly senior developers exactly why this is an unbelievably terrible idea, but of course they didn't get it because an overwhelming majority of developers are complete idiots.
@whimsy @mcc Convention over config is just a kind of protocol, which must be documented/reproducible by definition. Let’s not conflate all that with design by asshattery. “Protocol through obscurity” isn’t a thing.

@johnwhitley @whimsy it's possible if you understand how xml files are sourced and packaged in Android better than I do then the magic path becomes extremely obvious.

Anyway I want to be difficult and suggest that the xml file is, technically, a configuration file of sorts! Just a semi-undocumented configuration file loaded from a semi-undocumented location, whose discovery model seems to rely on Stack Overflow

@mcc @johnwhitley You are correct of course, but it's the same sort of thinking. "Just put this file in this magic location and it works!" Even if it's documented, which it usually isn't, you have to read and memorise ALL the documentation to understand how ANYTHING works, zero discoverability.
To the extent that there is any actual thought behind this sort of thing, it's a scam to force businesses to pay for specialist consultants. But mostly it's just stupidity.