Skip to main content

2 posts tagged with "migration"

View All Tags

Migrating from media_kit to Better Player

· 6 min read
Jakub Homlala
Senior Mobile Engineer

media_kit is a solid piece of engineering if you're building a desktop app on Windows, Linux, or macOS. Wrapping libmpv gives you an all-in-one codec powerhouse that plays almost any obscure video container you throw at it.

Mobile is a completely different game.

Once your Flutter app targets Android and iOS, bundling libmpv extracts a heavy tax: 30 to 50 MB of native C binaries per ABI in your final APK or IPA. Then your roadmap asks for studio-grade Widevine L1 or FairPlay DRM, native Picture-in-Picture, lock screen media controls, or a scrollable feed like TikTok. That is where libmpv starts fighting the mobile OS, and where Better Player takes over.

Here is why developers make the switch, and how to migrate your codebase in under thirty minutes.

So, You Want to Migrate to Better Player?

· 6 min read
Jakub Homlala
Senior Mobile Engineer

Let’s be honest: we’ve all been there. You start a Flutter project, throw in the official video_player package, and think, "Hey, this is pretty easy."

Then the client (or your own product roadmap) hits you with real-world requirements:

  • "Can we cache videos so users don't burn through their data?"
  • "Why does the player controls overlay break when I rotate the phone?"
  • "Can we add subtitles? And picture-in-picture? And a custom loading spinner?"

Suddenly, you’re drowning in platform channels, custom gesture detectors, and a spaghetti mess of state management to keep a video playing smoothly.

If you're wrapping your head around this and considering a switch to Better Player (or trying to decide between it and Chewie), let's walk through what the transition looks like in practice.