omni_player 2.1.0
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依赖,移除 Androidlibvlc-all依赖 - 消费端 App 需新增依赖
media_kit_libs_video: ^1.0.4(FFmpeg 解码器库) textureId始终返回null(media_kit 通过VideoController管理渲染,无需外部 texture ID)VideoWidget内部从UiKitView/Texture改为media_kit_video的Videowidget
新功能 #
- 格式支持大幅扩展: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 播放状态机处理,降低高频
seek、pause、play连续操作导致播放器状态错乱的概率 - 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 请求头、循环播放、倍速播放