使用AVAudioRecorder录制语音

时间:2015-06-24 20:56:39

标签: ios swift avaudiorecorder

我试图制作一个简单的录音机。我使用的是Xcode-beta 7,而且我的代码基于这三个来源。

我使用以下代码:

var recordSettings = [
        AVFormatIDKey: kAudioFormatAppleIMA4,
        AVLinearPCMIsBigEndianKey: 0,
        AVLinearPCMIsFloatKey: 0,
        AVNumberOfChannelsKey: 2,
        AVSampleRateKey: 32000
    ]

    var session = AVAudioSession.sharedInstance()

    do{
        try session.setCategory(AVAudioSessionCategoryPlayAndRecord)
        recorder = AVAudioRecorder(URL: filePath, settings: recordSettings, error: nil)
    }catch{
        print("Error")
    }

但它表示"找不到类型' AVAudioRecorder'的初始值设定项。接受类型'的参数列表(URL:NSURL ?, settings:[String:AudioFormatID],error:nil)'"

Aren的输入正是文档要求的内容吗?

2 个答案:

答案 0 :(得分:2)

AVAudioRecorder不再需要错误参数:

Jenkins

另外,我需要解开filePath,如上一个答案所示:

init(URL url: NSURL, settings settings: [String : AnyObject]) throws

答案 1 :(得分:0)

您的filePath被包装为optionnal。您应该检查是否不是n并打开它:

recorder = AVAudioRecorder(URL: filePath!, settings: recordSettings, error: nil)

你也需要传递一个NSError指针:

var error: NSError?
recorder = AVAudioRecorder(URL: filePath!, settings: recordSettings, error: &error)

之后,如果您的设置dictionnay中有错误,请尝试将所有Tnt转换为NSNumber,因为NSNumber是一个Object,而不是Int。例如:

NSNumber(integer: kAudioFormatAppleIMA4)