
どうも、まつまるです。前回の記事では動画をトリミングするプラグインを実行しました。今回は使用しているプラグインとコードの中身を簡単に解説します。
コードの解説については次回にします。 githubをクローン githubには動画をトリミングするパッケージが2つありますが、ローカルに保存したい方はこちらがおすすめ。今回はこちらの準備編です。 今後取り上げる予定ですが …
使用しているパッケージはこちら↓
Video trimmer example app v Flutter. Contribute to DrAchernar/flutter-video-trimmer development by creating an account on GitHub.
・使用しているplugin
pluginは一言でいうと拡張機能のことです。自分で1からコードを書いても良いですが、車輪の再発明になってしまいます。
心置きなく使っちゃいましょう。
flutter-video-trimmerで使っているpluginの一覧です。
flutter_ffmpeg
video_player
image_picker
gallery_saver
では、ひとつつずつ説明していきます。
flutter_ffmpeg
公式サイトを見ると、FFmpeg plugin for Flutterと書いてあります。
FFmpegとはwikipediaによると、
動画と音声を記録・変換・再生するためのフリーソフトウェアである。
ようは動画絡みの編集をするためにあるソフトウェアで、それを心優しい方がflutterでも使えるようにしてくれたわけです。
今回はトリミングした動画を新たな動画として保存する時に使われています。
video_player
これは説明不要ですね。動画を再生するためのpluginです。
image_picker
これはiphoneやandroidの端末からimage/videoを取り出すためのpluginです。
めっちゃ使います。
gallery_saver
image/videoをiphoneやandroidの端末に保存することができるpluginです。
・ローカルから動画を選択
ではまず画面構成とコードの関係を見ていきましょう。

重要なのは33行目のRaisedButtonが真ん中にある+ボタンを作っていて、これを押すと_pickVideo()が実行するようになっています。
_pickVideo()の中身は8~16行目になります。実行されたときにローカルから動画を選択できるように準備してあります。
video.pathがnullでなければ、editor.dartのEditorクラスにページが移ります。
Navigatorは画面変更をサポートしてくれるものです。
・動画をトリミング
editor.dartのEditorクラスでトリミング処理が行われています。画面が上手く表示されていない・・・・

水色のバーを操作すればトリミング時間を変更できます。ちょっと重たいですね。
トリミングの部分はコードが300行以上あるのではしょります。
・ローカルに保存
Trimボタンを押したらローカルに保存して、ポップアップが表示されます。

_saveVideo()は以下のように準備しておきます。ここでgallery_saverプラグインが大活躍です。プラグインのおかげでたった数行程度でローカルに保存が完了します。
まとめ
次回はなんとかトリミング部分の解説をやっていきたいです。