PackageTrack
Sign in Get early access

media_kit

A cross-platform video player & audio player for Flutter & Dart. Performant, stable, feature-proof & modular.

1.2.6 324K downloads/mo #656 most downloaded on pub.dev media-kit/media-kit

What this package is like to depend on

Last release 8 months ago

13 Dec 2025

Ships unpredictably

gaps range from 9 days to 10 months

Nearly every release is documented

notes for 48 of 48 stable releases

Nothing withdrawn

no release was ever pulled

3 years old

48 releases · first in 2023

6 releases in the last 12 months

see the full history below

Release timeline

48 releases · Feb 2023 to Dec 2025
2024 2025 2026
Release Pre-release

Releases

latest 48
  1. 1.2.6 13 Dec 2025
    Release notes
    • fix(windows): long file path support
    Open source →
  2. 1.2.5 12 Dec 2025
    Release notes
    • fix(windows): long file path support
    Open source →
  3. 1.2.4 12 Dec 2025
    Release notes
    • fix(windows): long file path support
    Open source →
  4. 1.2.3 02 Dec 2025
    Release notes
    • fix(native): setShuffle behavior
    • refactor(web): remove duplicate internal state
    • feat: add isDefault property to Track
    Open source →
  5. 1.2.2 14 Nov 2025
    Release notes
    • feat: allow overriding PlatformPlayer in Player constructor
    • feat: flutter 3.38.x support
    Open source →
  6. 1.2.1 05 Oct 2025
    Release notes
    • fix: misc issues
    Open source →
  7. 1.2.0 24 Mar 2025
    Release notes
    • REFACTOR: InitializerNativeCallable & InitializerIsolate.
    • REFACTOR: migrate NativePlayer Initializer to NativeCallable.
    • REFACTOR: hook NativeReferenceHolder.
    • REFACTOR: TempFile.
    • REFACTOR: remove InitializerNativeEventLoop.
    • PERF: observe playlist-playing-pos instead of playlist.
    • PERF: use loadlist in NativePlayer.open.
    • FIX: increase retry count for flaky player subtitle test.
    • FIX: bump web to 1.1.0.
    • FIX: comment out unsupported headers on web.
    • FIX: proper function signature.
    • FIX: pass http headers to hls.js.
    • FIX: emit position in stop.
    • FIX: NativePlayer.remove.
    • FIX: player.stream.playlist in add/remove.
    • FIX: player-open-playable-playlist-start-end.
    • FIX: playlist emit.
    • FIX: emit playlist from open.
    • FIX: add more formats to FallbackBitrateHandler.
    • FIX: delete temporary file in NativePlayer.
    • FIX: video_player black screen.
    • FIX: handle incorrect encoding in toDartString.
    • FIX: catch observe property callback exception.
    • FIX: NativeReferenceHolder on 32-bit systems.
    • FIX: do not reset audioParams & audioBitrate in stop.
    • FIX: Initializer._callback.
    • FIX: supply callback to NativeReferenceHolder.
    • FIX(android): libass font support.
    • FEAT: PlayerConfiguration.async.
    • FEAT: NativeReferenceHolder.remove.
    • FEAT: NativeReferenceHolder.
    • FEAT: waitForInitialization.
    • FEAT: Add support for including libass subtitles in screenshots.
    Open source →
  8. 1.1.11 22 Aug 2024
    Release notes
    • feat: Media start & end
    Open source →
  9. 1.1.10 19 Oct 2023
    Release notes
    • feat: prevent multiple calls to MediaKit.ensureInitialized
    Open source →
    Release notes
    • feat: prevent multiple calls to MediaKit.ensureInitialized
    Open source →
  10. 1.1.10+1 19 Oct 2023
    Release notes
    • docs: document updated media_kit_video
    Open source →
  11. 1.1.9 16 Oct 2023
    Release notes
    • fix: NativePlayer._command
    • fix: NativePlayer play after completed
    • fix(web): AssetLoader in release mode
    • chore: reduce demuxer cache size to 32MB
    • feat: PlayerConfiguration.muted for NativePlayer & WebPlayer
    Open source →
    Release notes
    • fix: NativePlayer._command
    • fix: NativePlayer play after completed
    • fix(web): AssetLoader in release mode
    • chore: reduce demuxer cache size to 32MB
    • feat: PlayerConfiguration.muted for NativePlayer & WebPlayer
    Open source →
  12. 1.1.8 27 Sep 2023
    Release notes
    • fix: reset subtitle state/stream in Player.setSubtitleTrack
    • fix: explicit comparator in PlayerStream Stream.distinct
    • fix: add rtp & udp to protocol_whitelist by default
    • fix: reset Player state/stream upon Player.open
    • fix: Player.stop memory leak
    • fix(web): do not throw UnsupportedError w/ SubtitleTrack.(auto|no)
    • perf: move NativePlayer.seek to Isolate
    • build: update package:uuid version constraint
    Open source →
    Release notes
    • fix: reset subtitle state/stream in Player.setSubtitleTrack
    • fix: explicit comparator in PlayerStream Stream.distinct
    • fix: add rtp & udp to protocol_whitelist by default
    • fix: reset Player state/stream upon Player.open
    • fix: Player.stop memory leak
    • fix(web): do not throw UnsupportedError w/ SubtitleTrack.(auto|no)
    • perf: move NativePlayer.seek to Isolate
    • build: update package:uuid version constraint
    Open source →
  13. 1.1.8+1 27 Sep 2023
    Release notes
    • docs: document updated media_kit_video, media_kit_libs_video & media_kit_libs_audio
    Open source →
  14. 1.1.8+2 28 Sep 2023
    Release notes
    • docs: document updated media_kit_video
    Open source →
  15. 1.1.7 26 Aug 2023
    Release notes
    • fix: close PlatformPlayer.playlistModeController
    Open source →
  16. 1.1.6 25 Aug 2023
    Release notes
    • feat: HLS support for web
    • fix: movtext subtitles not working
    • fix: expose composition model classes
    • fix: increase default demuxer cache size to 128 MB
    • fix(android): S/W rendering fallback
    • fix(android): create fresh android.view.Surface for every video output
    Open source →
  17. 1.1.5 20 Aug 2023
    Release notes
    • feat: Media.memory
    Open source →
  18. 1.1.4 16 Aug 2023
    Release notes
    • feat: VideoTrack/AudioTrack/SubtitleTrack expose more parameters
    • feat: NativePlayer.observeProperty & NativePlayer.unobserveProperty
    • fix: error stream not being emitted in certain cases
    • fix: pause during buffering makes Player not exit buffering
    • fix: DASH having BaseURL(s) with special characters not loading
    • fix(windows/android): AV1 support
    Open source →
  19. 1.1.4+1 16 Aug 2023
    Release notes
    • docs: document updated
      • media_kit_video
    Open source →
  20. 1.1.3 07 Aug 2023
    Release notes
    • fix: EXT-X-KEY support
    • fix: set subs-fallback & subs-with-matching-audio
    • fix(android): use hwdec=auto
    • fix(android): SurfaceTexture.setDefaultBufferSize & render race
    Open source →
  21. 1.1.3+1 08 Aug 2023
    Release notes
    • docs: document updated
      • media_kit_libs_ios_audio
      • media_kit_libs_ios_video
      • media_kit_libs_macos_audio
      • media_kit_libs_macos_video
    Open source →
  22. 1.1.2 06 Aug 2023
    Release notes
    • feat: export PlayerState & PlayerStream
    Open source →
  23. 1.1.2+1 06 Aug 2023
    Release notes
    • docs: document updated
      • media_kit_libs_ios_audio
      • media_kit_libs_ios_video
      • media_kit_libs_macos_audio
      • media_kit_libs_macos_video
    Open source →
  24. 1.1.1 29 Jul 2023
    Release notes
    • feat: Player.screenshot pixel-buffer support
    • feat: WebVTT over HLS support
    • feat(android): DASH support
    • feat(android): load/call mpv_lavc_set_java_vm in AndroidHelper
    • perf(android): static link FFmpeg w/ libmpv
    • perf: reduce bundle size
    • perf: improve Player.dispose & eliminate mpv_terminate_destroy delay
    • fix(windows): broken HLS support
    Open source →
  25. 1.1.0 23 Jul 2023
    Release notes
    • feat: Player.screenshot for capturing video snapshots as Uint8List
    • feat: external audio track & subtitle track support
      • AudioTrack.uri
      • SubtitleTrack.uri & SubtitleTrack.data
    • feat: WebVTT subtitle support
    • feat: Player.state.videoParams & Player.stream.videoParams
    • feat: Player.state.subtitle & Player.stream.subtitle
    • perf(android): use hwdec=mediacodec w/ enableHardwareAcceleration
    • fix(android): OpenSL ES limit
    • fix(android): improve stability
    • fix(android): file-descriptor clean-up for content:// URI
    • fix(windows): improve stability
    • fix: immediately set vid/aid/sid to no in dispose
    • perf: reduce bundle size by <= 50%
    • perf: do not decode video until VideoController attach
    Open source →
  26. 1.0.2 02 Jul 2023
    Release notes
    Open source →
  27. 1.0.1 02 Jul 2023
    Release notes
    Open source →
  28. 1.0.0 01 Jul 2023
    Release notes
    • feat: web support
    • feat: Player.stop
    • feat: support for AGP 8.0
    • feat: pre-built video controls
    • fix: buffering stream behavior
    • fix: improve stability on Android emulator(s)
    • fix: default PlayerState volume = 100.0
    • fix: Player.add, Player.remove, Player.jump & Player.move stability
    • test: stricter & more unit-tests
    Open source →
  29. 0.0.11 02 Jun 2023
    Release notes
    • fix: audioDevices state/stream not being set/emit
    Open source →
  30. 0.0.10 02 Jun 2023
    Release notes
    • perf: emit distinct events in Player.stream
    • fix(android): crash on some devices
    • fix: Player.setAudioDevice not working
    • fix: set/emit completed as false upon Player.seek
    Open source →
  31. 0.0.10+1 02 Jun 2023
    Release notes
    • docs: update demo application links
    Open source →
  32. 0.0.9 28 May 2023
    Release notes
    • fix(android): crash on Android 6.0 or lower
    Open source →
  33. 0.0.9+1 28 May 2023
    Release notes
    • docs: document updated media_kit_video
    Open source →
  34. 0.0.8 25 May 2023
    Release notes
    • fix: Player.dispose event loop clean-up
    • refactor: Player implementation clean-up
    • feat: Initializer.dispose
      • feat: InitializerIsolate.dispose
      • feat: InitializerNativeEventLoop.dispose
    • feat: PlatformPlayer.waitForVideoControllerInitializationIfAttached
    • feat: HTTP headers support in Media
    Open source →
  35. 0.0.7 27 Apr 2023
    Release notes
    • fix: MediaKit.ensureInitialized not passing optional libmpv argument
    Open source →
  36. 0.0.7+1 28 Apr 2023
    Release notes
    • docs: document updated media_kit_libs_android_video and media_kit_libs_android_audio
    Open source →
  37. 0.0.6 24 Apr 2023
    Release notes
    • feat: synchronize Player methods
    • refactor: improve Playlist handling in Player
    • refactor: improve handling of playlist, audioBitrate & audioParams states/events
    Open source →
  38. 0.0.5 18 Apr 2023
    Release notes
    • Android support
    • feat: video output width & height states/events:
      • Player.state.width: currently playing video's width as int
      • Player.stream.width: currently playing video's width as Stream<int>
      • Player.state.height: currently playing video's height as int
      • Player.stream.height: currently playing video's height as Stream<int>
    • feat(refactor): entry point
      • MediaKit.ensureInitialized
    • feat: media stream buffer state/event:
      • Player.state.buffer: currently buffered duration of the media stream as Duration
      • Player.stream.buffer: currently buffered duration of the media stream as Stream<Duration>
    • perf: limit demuxer cache size to 32 MB by default
    • fix: HTTPS m3u8 file loading
    • fix: asset names with special characters
    • feat: protocolWhitelist in PlayerConfiguration for whitelisting protocols
    • feat: bufferSize in PlayerConfiguration for setting demuxer cache size
    Open source →
  39. 0.0.5+1 18 Apr 2023
    Release notes
    • docs: document updated media_kit_video
    Open source →
  40. 0.0.5+2 19 Apr 2023
    Release notes
    • docs: document updated media_kit_video & media_kit_libs_windows_audio
    Open source →
  41. 0.0.4 06 Apr 2023
    Release notes
    • fix: opening Playlist (with index > 0) causes index to be treated 0 after internal queue was finished
    • fix: double play calls making Player paused
    Open source →
  42. 0.0.4+1 06 Apr 2023
    Release notes
    • docs(fix): images on pub.dev
    Open source →
  43. 0.0.3 03 Apr 2023
    Release notes
    • fix: unable to publish iOS to AppStore
    • fix: support for iOS simulator
    Open source →
  44. 0.0.3+1 03 Apr 2023
    Release notes
    • docs: document updated media_kit_native_event_loop
    Open source →
  45. 0.0.3+2 03 Apr 2023
    Release notes
    • docs: document updated media_kit_video
    Open source →
  46. 0.0.3+3 04 Apr 2023
    Release notes
    • docs: document updated media_kit_video, media_kit_libs_macos_video and media_kit_libs_ios_video
    Open source →
  47. 0.0.2 30 Mar 2023
    Release notes
    • macOS support
    • iOS support
    • feat: draw first frame upon Player.open before Player.play (#69)
    • feat: Player.open now accepts Playable i.e. Media or Playlist
    • feat: access Player logs from internal backend e.g. libmpv
      • PlayerLogs: class
      • Player.stream.logs: logs as Stream<PlayerLogs>
    • fix: improve internal playlist handling & management
    • feat: audio output device selection & enumeration
      • Player.setAudioDevice: method
      • AudioDevice: class
      • AudioDevice.auto: factory constructor
      • Player.state.audioDevice: currently selected audio device as AudioDevice
      • Player.stream.audioDevice: currently selected audio device as Stream<AudioDevice>
      • Player.state.audioDevices: currently available audio device(s) as List<AudioDevice>
      • Player.stream.audioDevices: currently available audio device(s) as Stream<List<AudioDevice>>
    • feat: video, audio & subtitle track selection & enumeration (#54)
      • Player.selectVideoTrack: method
      • Player.selectAudioTrack: method
      • Player.selectSubtitleTrack: method
      • VideoTrack: class
      • AudioTrack: class
      • SubtitleTrack: class
      • VideoTrack.auto: factory constructor
      • VideoTrack.no: factory constructor
      • AudioTrack.auto: factory constructor
      • AudioTrack.no: factory constructor
      • SubtitleTrack.auto: factory constructor
      • SubtitleTrack.no: factory constructor
      • Player.state.track.video: currently selected video track as VideoTrack
      • Player.stream.track.video: currently selected video track as Stream<VideoTrack>
      • Player.state.track.audio: currently selected audio track as AudioTrack
      • Player.stream.track.audio: currently selected audio track as Stream<AudioTrack>
      • Player.state.track.subtitle: currently selected subtitle track as SubtitleTrack
      • Player.stream.track.subtitle: currently selected subtitle track as Stream<SubtitleTrack>
      • Player.state.tracks.video: currently available video track(s) as List<VideoTrack>
      • Player.stream.tracks.video: currently available video track(s) as Stream<List<VideoTrack>>
      • Player.state.tracks.audio: currently available audio track(s) as List<AudioTrack>
      • Player.stream.tracks.audio: currently available audio track(s) as Stream<List<AudioTrack>>
      • Player.state.tracks.subtitle: currently available subtitle track(s) as List<SubtitleTrack>
      • Player.stream.tracks.subtitle: currently available subtitle track(s) as Stream<List<SubtitleTrack>>
    • refactor: rename Player.volume setter to Player.setVolume
    • refactor: rename Player.rate setter to Player.setRate
    • refactor: rename Player.pitch setter to Player.setPitch
    • refactor: rename Player.shuffle setter to Player.setShuffle
    • refactor: rename Player.state.isPlaying to Player.state.playing
    • refactor: rename Player.state.isPaused to Player.state.paused
    • refactor: rename Player.state.isCompleted to Player.state.completed
    • refactor: rename Player.state.isBuffering to Player.state.buffering
    • refactor: rename Player.stream.isPlaying to Player.stream.playing
    • refactor: rename Player.stream.isPaused to Player.stream.paused
    • refactor: rename Player.stream.isCompleted to Player.stream.completed
    • refactor: rename Player.stream.isBuffering to Player.stream.buffering
    Open source →
  48. 0.0.1 27 Feb 2023
    Release notes
    • Microsoft Windows support
    • GNU/Linux support
    • Initial release
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive