はじめに
昔作った動画再生アプリが、パッケージメンテナンス終了していて代替を使ってみることになった。
環境
- 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程度)
リソースの実行ファイル埋め込みと、更なるサイズ縮小の対応を願いたいところである
断念したグレーブロック問題はどうなったか確認していない