LoginSignup
5

More than 1 year has passed since last update.

posted at

updated at

【Flutter】音声を録音する

はじめに

2020年度XTechグループアドベントカレンダーの12日目の担当の高野です

本記事では、僕が最近学んでいるFlutterを使用し、iOS端末で音声を録音する方法について、備忘録的に書いていきたいと思います。

動作バージョン

  • Flutter 1.24.0
  • Dart 2.12.0
  • iOS 14.2

録音ライブラリ

Flutterで利用できるライブラリとしては、以下のものが代表的かと思います

今回はflutter_audio_recorderを使用し、Exampleを試してみました

実装

マイクの利用許可を尋ねる文言を ios/Runner/info.plist に以下を追加します

ios/Runner/info.plist
<key>NSMicrophoneUsageDescription</key>
<string>Can We Use Your Microphone Please</string>

そして、初回起動の際にマイクの利用が許可されていることを確認します。

lib/main.dart
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です。
引き続き楽しんでいただけると嬉しいです

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
5