omni_player 0.1.4
omni_player: ^0.1.4 copied to clipboard
Flutter媒体播放器插件,在Android/iOS上支持视频和音频播放和后台播放。支持MKV、MP4、HLS等.
0.1.4 #
新功能
- 新增磁盘缓存系统:首次播放走远端并在后台静默下载,再次播放命中缓存直接读本地文件(秒开)
- 新增
CacheConfig:支持配置最大缓存空间(默认 500 MB)、自定义缓存目录、启用/禁用开关 - 新增缓存管理 API:
getCacheSize()、getCacheSizeString()、clearCache()、clearCacheItem(url),方便业务层展示和清理缓存 VideoWidget新增视频加载中动画:白色圆形进度条,显示在右上角,release 包自动隐藏initialize()新增cacheConfig参数,不传则不启用缓存,零侵入
Bug 修复
- Android:修复首次启动必现不播放问题 ——
bindService()异步绑定期间initialize()立即返回,导致open()在playerService为 null 时被静默丢弃;现改为等待onServiceConnected后才回调 Dart - Android:修复缓存命中后播放本地文件失败 ——
DefaultHttpDataSource不支持file://协议,改用DefaultDataSource自动路由 HTTP 与本地文件 - 缓存:修复
HttpClient无超时设置,极端网络环境下后台下载任务可能永久挂起;新增连接超时 15s、下载兜底超时 30min - 缓存:修复每次访问缓存都立即写元数据文件,连续播放时产生大量冗余磁盘 I/O;改为防抖写入(500ms 合并),用户主动清除时仍立即落盘
- 缓存:修复元数据损坏时 catch 块静默吞掉异常,无法定位问题;改为打印错误日志后重置
- Dart:修复
_onEventcatch 块静默丢弃原生事件解析错误,改为debugPrint输出原始数据方便排查
0.1.3 #
Bug 修复
- Android:增加点击通知栏唤醒 App
- Android:修复后台偶发性不稳定问题
0.1.2 #
Bug 修复
- Android:修复Seek错误
0.1.1 #
Bug 修复
- Android:修复Seek问题
- iOS:修复通知栏问题
0.1.0 #
Bug 修复
- iOS:修复循环播放时
.ended与.stopped双触发导致重复循环的问题 - iOS:修复
dispose()未清空 VLC delegate,stop 后仍触发回调 - iOS:封面加载从同步
Data(contentsOf:)改为URLSession异步加载,避免阻塞线程 - iOS:修复
autoPlay: false时无法获取视频总时长 - iOS:修复视频/音频类型切换后视频黑屏不显示(VLC drawable 重新初始化)
- Android:修复
autoPlay: false时无法获取视频总时长 - Android:修复
onPlaybackStateChanged与onIsPlayingChanged重复发送播放状态事件 - Android:修复
seek接口 position 参数使用 Int 接收可能溢出,改为 Long - Dart:修复
dispose()重复调用时抛出StateError - Dart:修复原生层发送格式异常事件时导致崩溃
VideoWidget:修复BoxFit参数传入后实际未生效
变更
- Android 包名更新为
com.sirli.omni_player - 移除 macOS 和 Windows 平台支持
0.0.1 #
- 首次发布
- 支持 iOS(MobileVLCKit)和 Android(ExoPlayer/Media3)
- 支持 MP4、MKV、HLS、DASH、RTSP、MP3 等格式
- 支持视频渲染、后台音频、锁屏/通知栏媒体控制
- 支持自定义 HTTP 请求头、循环播放、倍速播放
- 支持上一首/下一首事件回调