제가 Swift2로 녹음하고 재생할 수 있는 간이 녹음기를 만들어 봤어요.

시도해 본 일


실시간으로 소리를 감시할 수 있는 앱을 만들기 위해 "녹음하고 틀어주세요!"인터넷에서 찾아보면서 샘플 앱을 만들어 봤어요.
나는 그것을 녹음하고 재생하는 최소한의 기능만 했다.상태 변경 버튼에 표시되지 않습니다.

이 기사가 참고가 될 수도 있어요.

  • 저는 먼저 swift로 녹음하고 방송하고 싶습니다
  • Button 설정, Action, Outlet 등은 모두 차입니다
  • 너는 이런 물건을 만들 수 있다



    약간의 해설 소스 코드


    단지 원본 코드에 논평의 해설을 추가했을 뿐이다.
    만약 모르는 점이 있으면 사양하지 말고 이 보도에 대한 평론에서 질문하세요.
    //
    //  ViewController.swift
    //  AVRecorderSample
    //
    //  Created by yokoyama.tatsuya on 2016/02/13.
    //  Copyright © 2016年 yokoyama.tatsuya. All rights reserved.
    //
    
    import UIKit
    import AVFoundation
    
    class ViewController: UIViewController {
    
        // file操作をするときに役立つNSFileManager
        // 録音したファイルをDocmentsディレクトリに保存しています。
        // 他にもtmpディレクトリやLibrary/Cachesディレクトリなんかがあるので、
        // 興味あればググってください
        let fileManager = NSFileManager()
        var audioRecorder: AVAudioRecorder?
        var audioPlayer: AVAudioPlayer?
        let fileName = "sample.caf"
    
        @IBOutlet weak var recordButton: UIButton!
        @IBOutlet weak var playButton: UIButton!
    
        override func viewDidLoad() {
            super.viewDidLoad()
            self.setupAudioRecorder()
        }
    
        // 録音ボタンを押した時の挙動
        @IBAction func pushRecordButton(sender: AnyObject) {
            audioRecorder?.record()
        }
    
        // 再生ボタンを押した時の挙動
        @IBAction func pushPlayButton(sender: AnyObject) {
            self.play()
        }
    
        // 録音するために必要な設定を行う
        // viewDidLoad時に行う
        func setupAudioRecorder() {
            // 再生と録音機能をアクティブにする
            let session = AVAudioSession.sharedInstance()
            try! session.setCategory(AVAudioSessionCategoryPlayAndRecord)
            try! session.setActive(true)
            let recordSetting : [String : AnyObject] = [
                AVEncoderAudioQualityKey : AVAudioQuality.Min.rawValue,
                AVEncoderBitRateKey : 16,
                AVNumberOfChannelsKey: 2,
                AVSampleRateKey: 44100.0
            ]
            do {
                try audioRecorder = AVAudioRecorder(URL: self.documentFilePath(), settings: recordSetting)
            } catch {
                print("初期設定でerror出たよ(-_-;)")
            }
        }
        // 再生
        func play() {
            do {
                try audioPlayer = AVAudioPlayer(contentsOfURL: self.documentFilePath())
            } catch {
                print("再生時にerror出たよ(´・ω・`)")
            }
            audioPlayer?.play()
    
        }
        // 録音するファイルのパスを取得(録音時、再生時に参照)
        // swift2からstringByAppendingPathComponentが使えなくなったので少し面倒
        func documentFilePath()-> NSURL {
            let urls = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask) as [NSURL]
            let dirURL = urls[0]
            return dirURL.URLByAppendingPathComponent(fileName)
        }
    
    
    }
    
    
    

    guthub도 드릴게요.

    좋은 웹페이지 즐겨찾기