ramkaの朝ごはんはピーナッツパン

超個人的備忘録です。基本自分のためなので、内容の不備、読みづらさ、つまらなさはご了承ください。

swiftで録音する

qiita.com

このままコピペしても動きませんでした

recorde関数のsetCategoryがそのままできなかったので、
以下のように変更

//            try! session.setCategory(AVAudioSessionCategoryPlayAndRecord)
            try! session.setCategory(AVAudioSession.Category.playAndRecord, mode: AVAudioSession.Mode.default, options: AVAudioSession.CategoryOptions.defaultToSpeaker)

record関数で変なエラーが出て、
「info.plistにちゃんとマイクにアクセスするってことを書いて」って怒られるので、
info.plistに以下を追加してみる

f:id:ramka:20190105232011p:plain
info.plistに追加



[-以下が追記-]
録音を行う関数の中に、再生を行うためのイニシャライズ処理も入っているようでした
録音直後は再生できるけど、一度アプリを閉じた直後に再生できなくなるのはそのためっだったようです

以下が再生も行うためのソース

        let session = AVAudioSession.sharedInstance()
        try! session.setCategory(AVAudioSession.Category.playAndRecord, mode: AVAudioSession.Mode.default, options: AVAudioSession.CategoryOptions.defaultToSpeaker)
        try! session.setActive(true)

これをしないと再生できない