🎙️

Swiftでの音声録音方法:AVAudioRecorderの活用

2024/01/04に公開

SwiftでAudioRecorderを使い基本的な録音機能の設定と使用方法について解説します。

参考となるコードはGitHubに載せておりますので参考にしてください。

https://github.com/entaku0818/AudioMaster/blob/main/Sources/AudioMaster/AudioRecorderMaster.swift

オーディオセッションの設定

try audioSession.setCategory(.record, mode: .default, options: [])
try audioSession.setActive(true)

ここでは、AVAudioSessionを設定しています。オーディオセッションは、オーディオの振る舞いを管理するためのものです。
最初の引数がCategoryで今回のように録音を設定したい場合は .record もしくは .playAndRecordを指定します

modeはただ録音したい場合は default で問題ありません。

https://developer.apple.com/documentation/avfaudio/avaudiosession/category
https://developer.apple.com/documentation/avfaudio/avaudiosession/mode

録音ファイルの保存場所の指定

let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]

録音ファイルを保存する場所を指定しています。
ここでは、FileManagerを使用してドキュメントディレクトリのURLを取得し、その中に録音ファイルを保存します。

https://developer.apple.com/documentation/foundation/filemanager/searchpathdirectory/

録音の開始

do {
    audioRecorder = try AVAudioRecorder(url: recordingURL!, settings: settings.asDictionary())
    audioRecorder?.record()
} catch {
    print("Error starting audio recording: \(error.localizedDescription)")
    throw error
}

AVAudioRecorderのインスタンスを生成し、指定したURLに録音を開始します。
settingsパラメータでは、録音の品質やフォーマットなどを指定できます。

https://developer.apple.com/documentation/avfaudio/avaudiorecorder

録音の停止

public func stopRecording() async throws {
    audioRecorder?.stop()
}

録音を停止するには、stop()メソッドを呼び出します。これにより、現在進行中の録音が終了し、ファイルに保存されます。

この記事では、Swiftでの基本的な録音プロセスを説明しました。さまざまな設定や機能を追加することで、アプリのニーズに合わせた録音機能を実装することができます。

Discussion