Flutterで動画なら覚えるパッケージ
Flutterで写真も動画も扱うぜ
写真や動画を扱うスマホアプリを開発したい場合、iOSならAVなんちゃら、AndroidならMediaなんちゃらってAPIを覚えて使うのが基本でした。でもFlutterアプリだったら可能な限り、せめて基本的な処理だけでもネイティブAPIを使わずに済ませたい。というわけでDartだけで使えるパッケージ挙げてみます。全部pub.devで公開されているパッケージで、iOSとAndroid実機で実際に動くのを確認してます。
まずは基本
静止画撮影や動画録画、そしてプレビュー用のWidgetを用意しています。高機能カメラアプリを作るには機能が足りてないかもだが、とりあえずアプリに撮影機能を付けたいなら十分すぎる。FlutterなのでオリジナルUIを上に重ねるのも簡単。
ちょっと設定するだけで写真や動画の選択画面を出せます。アルバム機能命のアプリでもない限りこれ。
メタデータを取得したい
写真データのExif情報を取得します。読み込んだmapはタグ名がキーになってるので、Exifタグを知ってないと困るのがちょっとめんどい。
動画調べたいならこっち。基本的な情報しか取れないけどプロパティになってるのでタグ名とか覚える必要なし。
再生したい
静止画の表示についてはFlutterならどうにでも出来るけど、
読み込んだデータはキャッシュさせたいならこれ。ただしこいつはflutter_cache_manager使ってて、さらにflutter_cache_managerは色々使ってるので注意が必要かもしれない。
動画の場合は、
コード読むとかなり面白いことやってるけど、そんなのは一切考えずFlutterのWidgetとして動画を再生出来る、という理解だけで使えるのが良い。だけどUIとか自分で作るのもめんどくさいならさらに、
iOSとAndroidで勝手にそれっぽいUIを付けてくれるプレイヤー。再生メインのアプリ作るとかじゃなければ十分すぎる。
小さくしたい
アプリで扱うには大きすぎる画像を指定した品質まで落としたり、解像度を落としたり、PNGで保存したり出来る。サムネイル画像作るときにも使える。
静止画ではなく動画を圧縮したいならこっち。ffmpeg使ってないので気楽に使えます。動画からサムネイル取得も可能。
おまけ
動画のような長大データを扱うような時は知っておくと便利かもしれない。ChunkedStreamReaderとか。
Discussion