Flutter MediaKitで動画再生してみる

はじめに

昔作った動画再生アプリが、パッケージメンテナンス終了していて代替を使ってみることになった。

環境

  • Windows 11
  • Flutter 3.27.1 stable
  • Dart 3.6.0

使ってみる

パッケージ
https://pub.dev/packages/media_kit

ここにある情報だけで必要十分なので、しっかりと読んでおく

早速実装

プロジェクトを作成して、ドキュメント通りに実装する

publpec.yaml

dependencies:
  media_kit: ^1.1.11 # Primary package.
  media_kit_video: ^1.2.5 # For video rendering.
  media_kit_libs_video: ^1.0.5 # Native video dependencies.

Video を利用する場合、合計3つパッケージを追加する

pub get しておく

ドキュメントの Example タブページのコードをコピーして、プロジェクトの lib/main.dart に貼り付ける

もうこれだけ、ビルド実行すると、動画が再生される

他の使い方

こんなに問題が発生しないと、文章にする必要も無いし、価値もないので何か書く
まあ、ドキュメントに書かれていることなので、しっかり読めばこちらも要らない

ローカル動画ファイル再生

URL 指定と同じなので内部で自動的に判断してくれる様子

    player.open(Media(r'C:\sample.mp4'));

音量設定

最大値は 100.0 で

    await player.setVolume(50.0);   // 音量 50%

倍速再生設定

Rate 値の設定で動画再生速度を変更する

    await player.setRate(2.0);  // 2.0倍速再生

再生状態を監視

    // 再生状態を監視
    player.stream.playing.listen(
        (bool playing) {
            if (playing) {
                // Playing.
                print('Playing');
            } else {
                // Paused.
                print('Paused');
            }
        },
    );

再生位置を監視

    // 再生位置を監視
    player.stream.position.listen(
        (Duration position) {
            print(position);    // 0:00:36.636600
            setState(() {
                // Update UI.
            });
        },
    );

まとめ

パッケージの出来がしっかりしていると問題発生&対処の苦労が無くて有り難い
ドキュメントもしっかりしているし、操作もシンプルで使いやすい
動画再生はこれで十分だと思う

変わって、久しぶりに Flutter アプリ作成してみたけど、改善されていてよかった!
ランタイム環境の実行サイズがかなり小さくなって(20MBytes程度)
リソースの実行ファイル埋め込みと、更なるサイズ縮小の対応を願いたいところである
断念したグレーブロック問題はどうなったか確認していない

タイトルとURLをコピーしました