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

Okay. It's fine. It's fine!! Another Tusky contributor figured it out. Everything happening here is because Exoplayer and Media3 Exoplayer, although locked to specific versions, use different class names, and I did not realize this extended to different xml file names
@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.
@mcc who decided to make me a detective to figure out why the computer is upset. This is bullshit.
@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.
@mcc Welcome to The Full Stack.
@mcc this is uncomfortably true :(
@mcc For real this is one of the big problems with the concept of code reuse. As libraries grow larger and more numerous, at some point it becomes faster and easier to write stuff yourself.
@mcc it used to be this way exclusively, but it can still be this way when you have a choice (I know most of us do not, at least not when we're getting paid).
Hey @mcc! Sorry, this is a strange request, and also dragging up an *ancient* thread, but i saved this toot ages ago because the idea of 'programming as a scavenger hunt' tickled me, and now, months later, I'd really like to use this as the epigraph in a chapter of my PhD thesis (on programming, as a scavenger hunt, as a research method). So, would this be ok with you, and if so, how would you like me to cite / credit you (as @mcc only, or some other name)? Thank you so much! 🙏
@mistertim hi, that is fine, and it would make the most sense I think to credit me as "Andi McClure".
@mcc aha perfect, thank you so much!