I’ve been streaming a lot of videos (anime) and music recently. For videos, I use those streaming sites that have multiple embedded players to ensure at least one version works.
Here’s my beef with it. They each have custom media players, and all of them have different, blaringly obvious flaws. They’re all presumably based on flash, but they all seem to have very different internal workings. Most of them have a poorly designed UI, and almost all of them have terrible buffering problems. By problems, I mean they LIE TO YOU. Allow me to explain.
If I see something that intuitively states that the video is buffered up to a certain point, I fucking expect it to be buffered up to that point EXACTLY.
Figure 1

The above picture depicts a player that really hates seeking. I should be able to drag to where it is buffered. Heck, I should be able to drag anywhere without it exploding, which is what most of the players end up doing. I don’t expect it to work immediately, but it certainly shouldn’t go “Wait, you mean you want me to start somewhere that isn’t buffered yet by sending you data from that point forward? Kill yourself.” Because that’s basically what most of them do.
It doesn’t even do a good job seeking within the BUFFERED AREA. If you try to seek backwards, it may even decide to stop working, and God forbid it work outside of the buffered area. In fact, if you try to seek past it, it will even pretend like it’s working by saying it’s starting at the new place, but instead continuing to play/buffer from where you originally were. Moreover, that buffered area isn’t even real. It’s lying to me. It will do the whole “hold your horses I’m fuckin’ buffering” well before it even comes close to the end of the buffered area. If I try to seek forward, it’ll go “LOL NOPE” and sometimes completely cease functioning.
It’s not just this particular player either. It’s a lot of them. Many don’t allow you to skip past what’s buffered, forcing you to buffer suffer from the beginning if you want to skip to a future position.
Some of them don’t even do the shitty parts right. For instance, the following image depicts a different player that has some weird graphical bugs in the buffering notification.
Figure 2

These strange black boxes seem to arbitrarily appear while the buffering animation plays. Not only that, but it lingers at 100% for a good few seconds. That’s annoying in any loader. You know it’s lying to you when it says 100% for more than half a second. If it’s not ready, leave it at 99%, or maybe even 98% to make it more believable. I think it’s bad practice in general to show a percentage. Especially since they can be very misleading to an average user. Is it percentage of a packet being downloaded, or is it how ready it is to play. Clearly, it’s not the latter for the two.
Even Google isn’t exempt from these flaws. Remember how YouTube was being really janky for a while (still kinda is). On many videos it would crap out about 3/4 of the way through and skip to the end. What’s up with that? Not to mention Google’s music app showing buffering animations and progress only to tell you that the stream you requested is unavailable. That really rubs me the wrong way.
Last but not least, something that literally every player seems to have problems with. If you leave it alone for too long, it explodes. Have you ever left a video alone to buffer for a while. Like, as long as 5 or 10 minutes? Have you ever left a video open in your browser after already having played it and then tried again hours later? What about leave a video open and then having your computer sleep? All of these cases tend to break embedded media players. I still don’t know why this is.
Since a media player is clientside and exists in memory, it should have all that buffered data ready to play at any time. Why do they get cranky when you leave them alone? I honestly can’t think of a good reason.
Doesn’t all of this make you wonder why these issues are being left alone? I don’t know exactly what goes into making a media player, but I’d like to make my own just to see how awful it is. The only reason I can imagine is that the backends to media players are difficult to make, and must be janky as hell to write.
Okay, that’s out of my system. Back to watching anime.