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

Update: I have figured out the undocumented* process for specifying a custom layout xml. Now I have a new problem: I said the way to get a valid exo_player_control_view.xml is to copy the one out of github? In fact no. I have done this and the git sample xml does not work right. So either I need some other xml, or I am confused which git hash of exoplayer I have actually installed.

Imagine if I were spending this time on feature work!!

* There is documentation but the documentation is not true

@mcc If "maldocumentented" doesn't exit, it should.

@TomF I'm not sure if you intended that typo. But if you did, it's absolutely perfect. I legit laughed.

cc @mcc

@root @mcc Ha! Completely unintentional. But yeah, I like it.
@TomF @mcc I think we need "misdocumented" and "disdocumented" so we can tell if the documentation is actively trying to mislead us or just dissembling to no particular end.