omni_player 2.1.0 copy "omni_player: ^2.1.0" to clipboard
omni_player: ^2.1.0 copied to clipboard

Flutter媒体播放器插件,在Android/iOS上支持视频和音频播放和后台播放。支持MKV、MP4、HLS等.

2.1.0 #

新功能 #

  • 新增视频截图方法,支持获取当前播放画面的截图。

优化 #

  • 优化后台播放稳定性,减少前后台切换时播放状态异常的问题。
  • 优化缓存逻辑,修复部分场景下缓存状态异常与缓存清理不稳定的问题。

2.0.0 #

重大重构 — 底层引擎从 VLC 迁移至 media_kit (libmpv/FFmpeg)

破坏性变更 #

  • 移除 iOS MobileVLCKit 依赖,移除 Android libvlc-all 依赖
  • 消费端 App 需新增依赖 media_kit_libs_video: ^1.0.4(FFmpeg 解码器库)
  • textureId 始终返回 null(media_kit 通过 VideoController 管理渲染,无需外部 texture ID)
  • VideoWidget 内部从 UiKitView / Texture 改为 media_kit_videoVideo widget

新功能 #

  • 格式支持大幅扩展:libmpv 基于 FFmpeg,支持 MKV、AVI、FLV、RMVB、RTMP 等 AVPlayer/ExoPlayer 不支持的格式
  • 任意倍速精确 Seek:彻底解决 0.5x 播放时 seek 后等待 3~10 秒的问题(根本原因是 VLC scaletempo 滤波器在 seek 后重新初始化,libmpv 无此问题)
  • 后台音频无缝继续:视频内容进入后台自动切换 VideoTrack.no()(禁用视频轨保留音频),iOS Metal Surface 挂起后音频不中断;回到前台自动恢复视频轨
  • 锁屏/通知栏倍速同步MPNowPlayingInfoPropertyPlaybackRate / PlaybackStateCompat 正确携带当前倍速,锁屏进度条时间预测准确

优化 #

  • iOS:willResignActiveNotification(比 didEnterBackground 更早)触发后台流程,在 Metal Surface 挂起前完成视频轨切换
  • iOS:pauseUponEnteringBackgroundMode: false 关闭 media_kit_video 内置的后台自动暂停,改由插件自身管理生命周期
  • Android:前台服务(PlayerService)精简重写,移除 libvlc 依赖,仅保留 MediaSession + 通知栏逻辑
  • 状态机守卫:后台期间 setVideoTrack(VideoTrack.no()) 触发的虚假 playing=false 不再错误推送 paused 状态

1.0.1 #

优化

  • Android / iOS:低倍数播放时 Seek 后播放进度抖动问题

1.0.0 #

重大更新

  • Android / iOS:统一优化 VLC 播放状态机处理,降低高频 seekpauseplay 连续操作导致播放器状态错乱的概率
  • Android / iOS:新增高频 seek 合并策略,短时间连续拖动时只将最后一次目标位置提交到底层播放器
  • Android / iOS:优化播放意图识别,忽略 play()open(autoPlay: true) 后迟到的 paused / stopped 状态回调

优化

  • Android:修复循环播放在 EndReached 后不稳定的问题
  • Android:优化连续 seek 后进度上报,减少旧进度回调导致的进度条回跳
  • iOS:优化频繁 seek、暂停、播放后的状态恢复

0.1.23 #

  • 增加后台播放异常显示

0.1.22 #

  • 增加 MKV、AVI 等主流网络视频格式支持
  • 提高后台播放的稳定性
  • 优化视频 seek 的准确性

0.1.21 #

  • iOS:后台连续播放稳定性优化,open() 切歌时复用 AVPlayer 实例

0.1.20 #

  • iOS:修复 CMTimeGetSeconds 对无效时间返回 NaN 时 Int(nan) 导致崩溃
  • iOS:修复 seekTargetMs 未在 teardownPlayer 中重置
  • iOS:修复 setupRemoteCommands 重复 addTarget 不移除
  • iOS:修复 KVO 回调快速切歌时旧 item 回调作用于新播放的竞态

0.1.19 #

  • iOS:seek 后记录目标位置,播放进度低于 seek 位置时上报 seek 位置

0.1.18 #

  • 删除残留的旧 IJKPlayer 引擎文件

0.1.17 #

重大变更

  • iOS:底层播放引擎从 MobileVLCKit 替换为 iOS 原生 AVPlayer
  • seek 精度大幅提升,toleranceBefore/After: .zero 精确到帧
  • 移除 FFmpeg 依赖,ipa 包体显著减小

0.1.12 #

  • Android / iOS:修复暂停状态 seek 后点击播放,进度短暂闪回 seek 前位置的问题

0.1.9 #

  • Android / iOS:新增 seek 进度地板机制,解决精确 seek 后帧边界对齐导致进度短暂回跳

0.1.8 #

  • Android / iOS:seek() 改为精确模式,跳转到指定时间点而非最近关键帧

0.1.4 #

  • 新增磁盘缓存系统(CacheConfig
  • 新增缓存管理 API:getCacheSize()getCacheSizeString()clearCache()clearCacheItem()
  • VideoWidget 新增视频加载中动画

0.0.1 #

  • 首次发布
  • 支持 iOS(MobileVLCKit)和 Android(ExoPlayer/Media3)
  • 支持视频渲染、后台音频、锁屏/通知栏媒体控制
  • 支持自定义 HTTP 请求头、循环播放、倍速播放
2
likes
110
points
95
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Flutter媒体播放器插件,在Android/iOS上支持视频和音频播放和后台播放。支持MKV、MP4、HLS等.

Homepage

License

MIT (license)

Dependencies

crypto, flutter, media_kit, media_kit_video, path_provider, plugin_platform_interface

More

Packages that depend on omni_player

Packages that implement omni_player