跳到正文
发现
media_kit:跨平台 Flutter 音视频播放库
其他开发者工具

media_kit:跨平台 Flutter 音视频播放库

面向 Flutter 与 Dart 开发者的跨平台视频与音频播放库,支持多平台与多种媒体格式。

admin
发布于 2026-10-28
浏览
4
访问
0
下载
0
版本
vmedia_kit-v1.1.10
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

media_kit 是面向 Flutter 与 Dart 的跨平台视频播放器和音频播放器库,采用模块化包拆分方式,方便在应用中按需集成视频或音频播放能力。支持 Android、iOS、macOS、Windows、GNU/Linux 与 Web;其中 Android 5.0 及以上、iOS 9 及以上、macOS 10.9 及以上、Windows 7 及以上,GNU/Linux 支持现代发行版,Web 支持现代浏览器。

主要功能

  • 视频与音频播放,跨平台
  • 广泛的格式/编解码支持
  • 硬件/GPU 加速
  • 播放列表:下一首/上一首/跳转/随机播放
  • 调整音量、速率、音调
  • 选择视频、音频、字幕轨道,支持外挂音频/字幕
  • 支持 HTTP headers
  • 内置视频控件、字幕样式设置、截图

安装与使用

需要视频播放时,在 pubspec.yaml 中加入:

dependencies:
  media_kit: ^1.2.6
  media_kit_video: ^2.0.1
  media_kit_libs_video: ^1.0.7

只需音频播放时:

dependencies:
  media_kit: ^1.2.6
  media_kit_libs_audio: ^1.0.7

初始化与基础播放:

import 'package:media_kit/media_kit.dart';
import 'package:media_kit_video/media_kit_video.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  MediaKit.ensureInitialized();
  runApp(const MyApp());
}

class MyScreenState extends State<MyScreen> {
  late final player = Player();
  late final controller = VideoController(player);

  @override
  void initState() {
    super.initState();
    player.open(
      Media('https://user-images.githubusercontent.com/28951144/229373695-22f88f13-d18f-4288-9bf1-c3e078d83722.mp4'),
    );
  }

  @override
  void dispose() {
    player.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Video(controller: controller);
  }
}

使用 Video(controller: controller) 显示画面;结束播放后调用 await player.dispose(); 释放资源。

注意事项

  • 同时需要视频与音频时选择视频库。
  • media_kit_libs_video 与 media_kit_libs_audio 不应混用。
  • Release 模式性能明显高于 Debug 模式。
  • Android 上建议启用 --split-per-abi 或使用 app bundle 替代 APK。
  • 使用前必须调用 MediaKit.ensureInitialized();根据项目需要补充权限配置。
  • 许可证为 MIT。

本作品整理自 GitHub 开源项目 media-kit/media-kit,原作者 @media-kit,许可证 MIT。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. vmedia_kit-v1.1.10当前版本

    防止对 MediaKit.ensureInitialized 的多次调用。

评论