12
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

XTechグループAdvent Calendar 2020

Day 12

【Flutter】音声を録音する

Last updated at Posted at 2020-12-11

#はじめに
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です。
引き続き楽しんでいただけると嬉しいです

12
6
0

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
  3. You can use dark theme
What you can do with signing up
12
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?