0Pricing
Swift Academy · レッスン

音声の録音

マイク入力をファイルに取り込みます。

「音声の録音」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。

AVAudioRecorderで録音する

AVAudioRecorder は、最小限の設定でマイクから音声をファイルにキャプチャできます。ボイスメモやシンプルな録音アプリに適しています。

import AVFoundation

マイクの権限

録音にはユーザーの許可が必要です。Info.plistに NSMicrophoneUsageDescription を追加し、録音前にアクセスをリクエストします。

AVAudioApplication.requestRecordPermission { granted in
    if granted { /* start recording */ }
}

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

セッションのカテゴリを .record または .playAndRecord に設定してアクティベートし、システムがマイク入力をアプリにルーティングできるようにします。

let session = AVAudioSession.sharedInstance()
try session.setCategory(.playAndRecord)
try session.setActive(true)

ファイルURLの選択

録音データはファイルに書き込まれます。documentsディレクトリに、.m4a など適切な拡張子を付けたURLを作成します。

let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let url = dir.appendingPathComponent("memo.m4a")

レコーダーの設定

設定用の辞書で AVAudioRecorder のキーを指定し、形式、サンプルレート、チャンネル数、品質を定義します。

let settings: [String: Any] = [
    AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
    AVSampleRateKey: 44100,
    AVNumberOfChannelsKey: 1,
    AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
]

レコーダーの作成

URLと設定を指定して AVAudioRecorder を初期化し、prepareToRecord() を呼び出してリソースを確保します。

let recorder = try AVAudioRecorder(url: url, settings: settings)
recorder.prepareToRecord()

録音の開始と停止

record() を呼び出して録音を開始し、stop() で終了します。停止すると音声ファイルが確定され、閉じられます。

recorder.record()
// later
recorder.stop()

時間指定録音と一時停止

record(forDuration:) を使うと指定した時間だけ録音できます。また、pause() と record() を使うと、同じファイルへの録音を一時停止・再開できます。

recorder.record(forDuration: 30) // stop after 30s

音量レベルの計測

isMeteringEnabled を有効にし、updateMeters() を呼び出してから averagePower(forChannel:) を読み取り、リアルタイムのレベルメーターを動かします。

recorder.isMeteringEnabled = true
recorder.updateMeters()
let power = recorder.averagePower(forChannel: 0) // in dB

デリゲート

AVAudioRecorderDelegate に準拠すると、録音が正常に終了したときやエンコードエラーが発生したときに通知を受け取れます。

func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder,
                                     successfully flag: Bool) {
    print("finished: \(flag)")
}

録音結果の再生

録音後、同じURLを指定した AVAudioPlayer でファイルを再生します。キャプチャが正しく行われたかをすぐに確認できます。

let player = try AVAudioPlayer(contentsOf: url)
player.play()

理解度チェック:録音

音声録音についての理解度を確認します。

まとめ:音声を録音する

AVAudioRecorder は、権限をリクエストして録音用の AVAudioSession をアクティベートした後、マイク音声をファイルにキャプチャします。URLと設定用の辞書(形式、サンプルレート、チャンネル数、品質)を指定し、prepareToRecord()、続いて record()/stop() を呼び出します。

レベルをリアルタイムに表示するにはメータリングを有効にし、完了通知にはデリゲートを使います。確認のため、AVAudioPlayer で録音結果を再生します。

よくある質問

「音声の録音」レッスンは無料ですか?

はい。「音声の録音」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。

「音声の録音」で何を学びますか?

マイク入力をファイルに取り込みます。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「音声の録音」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. AVPlayerによるメディア再生
  2. 音声の録音
  3. AVAssetとコンポジション
  4. SwiftUIへのプレイヤーの埋め込み
← Swift Academyに戻る