{
  "id": 14209572,
  "title": "Playing video on Flutter Linux desktop with media_kit",
  "url": "https://urgent.news/2026/10/13/playing-video-on-flutter-linux-desktop-with-media-kit",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-13T13:45:00.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/frankmilvus/playing-video-on-flutter-linux-desktop-with-mediakit-5b7o"
  },
  "original_language": "en",
  "account": "Video playback on the Flutter Linux desktop lacked a player component. When videos failed to play, the app incorrectly displayed \"Video expired.\" The issue arose because the video_player plugin didn't have a Linux implementation, and media_kit wasn't integrated yet. The root cause was simple: VideoPlayerController.initialize() threw UnimplementedError on Linux as there was no backend to handle the video. The streaming fallback also failed due to the same reason. The solution was to introduce VideoPlaybackController, an abstraction layer between the widget and the player. This controller, which extends ValueNotifier, offered a unified API for both the Linux and other platforms. By implementing MediaKitVideoController for Linux and PluginVideoController for others, the app could seamlessly switch between the two players. The change required only a few adjustments – creating the appropriate controller based on the platform and rendering the view with buildView(). With this approach, media_kit was integrated without affecting other platforms, and the UI accurately represented the video playback status.",
  "summary": "Video is the one media type in tonGues that cannot fail quietly. A photo that won't load falls back to an icon tile and most people never notice; a video that won't play looks like the whole app is broken. So when every video bubble on our Linux desktop build started showing \"Video expired\" — the label we reserve for a file the server no longer has — we knew something was off. Flutter Linux…",
  "key_points": [
    "Video playback issue on Flutter Linux desktop due to lack of player component",
    "VideoPlayerController.initialize() threw UnimplementedError on Linux",
    "VideoPlaybackController introduced as abstraction layer for seamless playback"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}