Some flac files not playing

Issue description:

Most of my flac files play fine, but some specific ones don’t play in Symfonium. The files in question work fine in VLC on Android, and also works on Feishin connected to the same Subsonic server.

Logs:

Upload description: jacobgkau

Additional information:

 
When the files fail to play, the play button sits there with a circle spinning around it. I’ve also seen the play button rapidly flicker to a pause button (while not progressing in the song).
 

Reproduction steps:

 

 

Media provider:

Subsonic

Screenshots:

     

Upload the files to https://upload.symfonium.app but the files are probably invalid, ExoPlayer is a little more strict about that.

I’ve uploaded one example file (the same one I used for generating the debug log).

If all other players can play a file but your app can’t, the issue is your app, not the file.

Testing the file myself, I see that flac -t shows this one has an md5 signature mismatch. Many of the files in this particular compilation do, while the rest report “ok” but have a warning that there’s no MD5 signature present in the STREAMINFO at all. Thus, the built-in validity checking is useless for this compilation.

Is there really no way you can have Symfonium play a flac stream to the best of its ability simply because you’re using ExoPlayer? I’ve tried a handful of other Android media players in the past, but none of them had an issue with these files. I found your upstream issue ffmpeg flac strange behavior on an small corrupted file. · Issue #558 · androidx/media · GitHub when digging for info about this, but haven’t really seen anyone else talking about it besides the other users who’ve reported it here on the Symfonium support forum.

No I won’t rewrite ExoPlayer to read invalid files sorry.

ExoPlayer and Symfonium value your ears, so if the file is invalid and decoding bad samples can generate ultra loud volume and kill your ears what would you do ?
Come here and assault me because how dare you play invalid sound.
And at the same time, here you are asking me to play invalid files and kill your ears.

Wow, I don’t appreciate the tone.

You’re using a crappy library. If you want to hide behind your upstream’s shortcomings, so be it. But this…

This is lunacy. It’s a checksum. No amount of “bad samples” can make a device play back louder than it’s physically capable of and “kill your ears.” And somehow, the developers of VLC, iTunes, and every other media player on the planet have gone this far without getting sued for hearing loss.

Other players can play these files fine, so they don’t contain ultra-loud sound. And there’s nothing stopping people from encoding perfectly valid flac files that contain ultra-loud sound-- your app will play those as long as the MD5 matches. This entire “for your protection” premise is nonsense.

Close as wontfix, but don’t make dumb excuses like that.

Like this tone ?

The files are invalid you have just confirmed that. The rest is just you no really understanding facts.
The checksum validate the sample, if it’s bad then Symfonium can’t guarantee the output, and yes if you listen to a low volume classical track and have some samples at full volume supported by your headphones it will hurt badly.

If you are sure the files are valid you can fix the checksum with flac command and assume the consequences.
The fact that those specific files does not have loud volume does not means it can’t happen …

Again the files are invalid and you know that :wink:

If you’re going to not play back when the checksum doesn’t match, then why don’t you check the checksum and show an error message if it doesn’t match? That way, users at least know what the problem is and it doesn’t appear that your app is broken. (Because no, I didn’t “know that” until now.)

It can be argued that invalid files don’t need to be supported, but sitting on a spinning play button is a more objective UX issue.

That is the actual only shortcoming of the upstream library :wink:

It’s reported to them, you can ping there to make them move faster.
But I do not have the resources to debug a library maintained by Google to better handle some invalid files.

Ho and of course thanks for being so nice :wink:

Wonder why I bother doing support on a Sunday to see this …

I’m aware your app is exposing a bug in the library. I was suggesting you try to come up with a way to detect the problem yourself outside of the point where you’re hitting the bug. For example, you could check the MD5 of FLAC streams yourself and error out before you start playing them if it doesn’t match, which would avoid hitting the bug. Or you could try to detect rapid play/pause events caused by the bug and respond to that.

No you assaulted me and ordered me to play them :wink:
Then bad rated the app and assaulted me more :wink:

Then changed idea :wink:

So with all due respect you are kinda projecting a lot in that bad rating …

And again with all due respect you are the reason why most apps on Play Store do not bother with ratings and offering support …

And your persistence here, confirm that you are indeed a huge … :wink:

So have a nice day and please stop using the app, you do not deserve my work …

Seriously the amount of entitled piece of shits those days is actually insane.

Why the fuck would I do something for someone like you …

1 Like

Listen, I can tell you’re not a native English speaker by your weird punctuation. This thread did not need to devolve into you swearing at me.

I backed off immediately after I tested the file myself and saw it was invalid, and switched to asking if other solutions were possible. I asked (not “ordered”) if you could have ExoPlayer ignore the checksum. And most recently, I genuinely proposed workarounds that would result in less frustration for future new users who might run into this issue. Instead of engaging that discussion, you remained fixated on “getting back at me” for a perceived slight.

Yeah, I left a bad review after you came in hot here. I thought you wouldn’t care since you’re so very clear that you only respond to feedback here on your forum. I promise, people coming to this thread are not going to see “helpless kind dev attacked by rude user” just because I called you out on an exaggeration. Take a few breaths and maybe sleep on the workarounds so you can handle the next ticket you inevitably get for this a little nicer.

So you assault you insult but I’m the problem here :wink:

Funny how I can also tell that there’s 95% chance you are American with how you act.

You are the problem here and yes people will see an user assaulting a dev trying to help a user despite the assaults …

Edit: And BTW all other reports had users understanding the files are invalid and fixed their files and were nice too :wink:

Yes, coming back at me with sarcasm and exaggerations and then acting like a victim when I don’t take kindly to that does make you the problem. You have been far ruder than me in this thread. I did not “assault” or “insult” you in any way; I described you as a jerk once you started being a jerk.

I’ve already acknowledged the facts of the situation (including that the file I was playing had an invalid checksum, and that the underlying bug your app exposes is part of a library you don’t control). I was (and am) still willing to talk about how to improve the app’s experience anyway. Let me know if/when you want to actually get back to the topic at hand.

So a bad rating with an insult is not insult and assault :wink:

Sorry that you live in alternative reality. In the real world this is actually an assault, you know lying and trying to hurt a business that kind of stuff.

You start by telling me that because all your cars are blue, my car should be blue too. Then acknowledge that the files are indeed invalid.

My answer was perfectly fine after your aggressive posts. And yet little princess was offended, bad rated and assaulted more.

So no sorry after your actions and bad rating, I have absolutely no interest in discussing with you.

For the fun :slight_smile: (And this does not take in account the insult on the bad rating… :wink:


How jacobgkau’s behaviour unfolds across the thread

Stage Post # / time Tone & rhetoric Effect on the exchange
Opening report #1 (03 :52) Neutral, factual bug report explaining symptoms and environment. No blame. Symfonium support Establishes a standard support request.
First push-back #3 (08 :30) Assertive: “If all other players can play a file but your app can’t, the issue is your app, not the file. Symfonium support Sets an adversarial frame—little benefit of the doubt to the dev.
Technical self-check #4 (09 :00) Investigative, still critical. Acknowledges checksum mismatch but asks for a workaround; cites other apps that succeed. Symfonium support Shows initiative and domain knowledge, yet keeps pressure on dev to “fix” it anyway.
Reaction to Tolriq’s harsh reply #6 (09 :16) Shock → sarcasm → direct insults: “You’re using a crappy library… This is lunacy… don’t make dumb excuses.” Symfonium support Tone escalates sharply; shifts from technical to personal, triggering a flame cycle.
Pivot to UX feedback #8 (09 :40) More measured: proposes showing an error instead of a spinner; labels it an “objective UX issue.” Symfonium support Returns to constructive suggestions, but earlier insults keep conversation heated.
Continued suggestions #10 (09 :56) Concrete mitigation ideas (pre-checking MD5, detecting rapid play/pause). Calm language. Symfonium support Attempts to steer back to problem-solving; partial de-escalation.
Defensive rebuttal #12 (10 :13) Calls out dev’s profanity, explains rating decision, urges calmer discussion. Also takes a jab: “I can tell you’re not a native English speaker by your weird punctuation.” Symfonium support Mix of de-escalation and ad-hominem; the language remark re-personalises the conflict.
Final stance #14 (10 :28) Restates willingness to help improve the app, insists dev was “far ruder,” denies “assault.” Symfonium support Ends on a defensive yet open note, but relationship likely unrecoverable.

Your table acknowledges that I’ve been attempting to de-escalate for more than half of the conversation. I don’t know what else to tell you.

It also shows that you actually escalated :wink: And even chatGPT says but earlier insults keep conversation heated. suggested that well you insulted despite the claims :wink:

But let’s focus on the part where you try to look nice here but at the same time make it worse on the Play Store rating instead of actually de-escalate?

The Play Store rating left with lies and insults kinda prevent follow up.

So have a nice day and no need to come back.

“Earlier insults keep conversation heated” also means you were choosing to remain heated by earlier statements (there were no insults) after they’d been dropped. (And if you’re going to pick out everything that table says, it also labels your reply after my self-check as “harsh.”)

You seem really obsessed with your Play Store rating. I’d be willing to revisit the review if it seems like I’m going to be able to continue using your app in good faith without having to worry about you trying to screw me over one way or another out of pettiness from this exchange. I’m not sure if you’re actually able to ban me from using the app via Google Play?

It’s actually sad to me how this interaction went down. I was planning to cover your app as part of a YouTube video semi-soon and everything. And for the record, mentioning your being ESL earlier was not meant to be a “jab” as ChatGPT put it; it was letting you know that I seriously think you interpreted some of the earlier messages harsher than I meant them (and/or might not’ve realized how strongly you were coming across to me).

Close your eyes, invert the roles and see how this perfectly applies to the other party ?

chatGPT confirmed :“Sets an adversarial frame—little benefit of the doubt to the dev.” “yet keeps pressure on dev to “fix” it anyway.”

So I may have understood that as chatGPT and maybe the fact that I gave as an answer were miss interpreted ?

You see your actions with the direct bad rating hurting the app is exactly what I’m talking about in my answer.
If the app had outputted a too loud noise in those files, you’d have directly bad rated as many other people. Those are facts from 13 years on Play Store.

If you actually want a solution you’ll be the one to have to remove the rating and stop telling me that I must do things because you want me to. Specially after your actions.

Alright, I’ll put my pride where my mouth is. I just edited the review to one that I believe is more fair. I hope you agree on that point, at least.