#はじめに
2020年度XTechグループアドベントカレンダーの12日目の担当の高野です
本記事では、僕が最近学んでいるFlutterを使用し、iOS端末で音声を録音する方法について、備忘録的に書いていきたいと思います。
#動作バージョン
- Flutter 1.24.0
- Dart 2.12.0
- iOS 14.2
#録音ライブラリ
Flutterで利用できるライブラリとしては、以下のものが代表的かと思います
-
flutter_sound
(ドキュメント: https://pub.dev/packages/flutter_sound) -
audio_recorder
(ドキュメント: https://pub.dev/packages/audio_recorder) -
record
(ドキュメント: https://pub.dev/packages/record) -
flutter_audio_recorder
(ドキュメント: https://pub.dev/packages/flutter_audio_recorder)
今回はflutter_audio_recorderを使用し、Exampleを試してみました
#実装
マイクの利用許可を尋ねる文言を ios/Runner/info.plist
に以下を追加します
<key>NSMicrophoneUsageDescription</key>
<string>Can We Use Your Microphone Please</string>
そして、初回起動の際にマイクの利用が許可されていることを確認します。
if (await FlutterAudioRecorder.hasPermissions)
こちらを初期画面生成時に書いてあげます
あとは FlutterAudioRecorder()
を書いてあげます
(new) FlutterAudioRecorder FlutterAudioRecorder(String path, {AudioFormat audioFormat, int sampleRate = 16000})
このようになってますので path
にはどこにどういう名前で保存するかを書いてあげて、Audioのフォーマットが .m4a .aac .mp4 .wav
がありますのでどれか指定してあげれば大丈夫です
var recorder = FlutterAudioRecorder("file_path", audioFormat: AudioFormat.AAC);
await recorder.initialized;
こんな感じで生成します
*path
についてはpath_providerを使用して指定していますが今回は触れないです
#Buildした際の画面
#録音開始
await recorder.start();
var recording = await recorder.current(channel: 0);
#録音停止
var result = await recorder.stop();
File file = widget.localFileSystem.file(result.path);
#一時停止
await recorder.pause();
#録音再開
await recorder.resume();
#終わりに
Flutterで録音について書かせていただきましたが、どうだったでしょうか
ぜひコメントやLGTMなど反応をいただけたらと思っています
また弊社では採用もバシバシ実施しているので興味のあるかたがいましたらご応募ください
https://www.wantedly.com/companies/excite
XTechグループ Advent Calendar 2020 13日目の執筆担当は僕の同期になるy-konaです。
引き続き楽しんでいただけると嬉しいです