概要
audiofileplayer
というパッケージを使い、簡潔に書くことができる
Audio.load('assets/foo.wav')..play()..dispose();
手順
1. audiofileplayer
をpubspec.yamlに追加
下記のように追加
dependences:
flutter:
sdk: flutter
audiofileplayer:
2. オーディオファイルを準備
pubspec.yamlに音声ファイルのパスを記述する。場所はdependences:
ではないことに注意
また、ファイルを一括で読み込む場合はそのファイルを直接含むディレクトリのパスを記述し、最後に/
を付ける必要がある
# ページ下部のflutter:が最上位となっている場所!
flutter:
#...
# To add assets to your application, add an assets section, like this:
# assets:
# - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg
assets:
- assets/foo.wav #パスを記述
- assets/audio/ #複数のファイルを一括で読み込む場合はディレクトリパスの最後に'/'を付ける
3. 実行する
再生したい場所にこのように書くことで再生することができる
Audio.load('assets/foo.wav')..play()..dispose();
最後に
SEをワンショット再生したいだけなとき、何かと再生するまで色々しないといけないことが多いですが、このパッケージ使えば「一行」で済むのですごい楽でした(2つ連なるカスケード記法を一行で書くことにはいろいろ意見がありそうですが)
この記事はワンショット再生について書いているので、あまり詳しくは書きませんでしたが、このパッケージ楽曲再生はもちろんのこと再生中や終了後の処理、再生位置取得、バックグラウンド、ローカルではない場所の楽曲再生など、通常のオーディオパッケージが持つ機能も持っています。(下記、参考文献のリンクから見れます)なので、SE再生用としていれたけど、BGMも欲しくなった時でも十分対応できるかと思います。
なにか誤記等ございましたら、お気軽にお申し付けくださいませ。