使用prepareToRecord时为什么会出现AudioConverterNew错误?

时间:2016-01-24 05:03:22

标签: ios swift swift2 avfoundation

当我使用代码时:

 @IBAction func recordAudio(sender: UIButton) {
    recordButton.enabled = false
    stopButton.hidden = false
    recordingInProgress.hidden = false

    //recording the user's voice
    let dirPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String

    let recordingName = "my_audio.wav"
    let pathArray = [dirPath, recordingName]
    let filePath = NSURL.fileURLWithPathComponents(pathArray)
    print(filePath)

    let session = AVAudioSession.sharedInstance()
    try! session.setCategory(AVAudioSessionCategoryPlayAndRecord)

    try! audioRecorder = AVAudioRecorder(URL: filePath!, settings: [:])
    audioRecorder.delegate = self
    audioRecorder.meteringEnabled = true

    audioRecorder.prepareToRecord()
    audioRecorder.record()
}

我得到一个错误返回:

2016-01-23 23:42:04.338 Pitch Perfect[3608:1266093] 23:42:04.338 ERROR:    1066: AudioConverterNew returned -50

打印出7次。所有这些错误都被最后两行抛出(至少,当我使用随机打印语句进行故障排除时,它会出现这种情况)。 [Pitch Perfect是我的应用程序的名称]。

以下行引发了其中六条错误消息:

 audioRecorder.prepareToRecord()

以下行引发了以下错误消息之一:

audioRecorder.record()

有谁知道为什么会这样?我正在使用运行OS X 10.11.3的Mac。我正在运行Xcode 7.2。

我想到的一个想法是,我的麦克风可能无法正常工作。我找不到任何讨论错误1066或AudioConverterNew返回-50的地方,所以我真的不知道。

1 个答案:

答案 0 :(得分:1)

解决了我自己的问题。在继续对我的代码进行错误检查之后,我确定这不是代码错误,而是系统错误。我的MacBook Pro附带了一个外接显示器。快速查看系统偏好设置 - >声音 - >输入显示我的Mac设置为使用外接显示器上的麦克风(它没有...)。我选择“内部麦克风”作为我的INPUT设备,然后在模拟器中重建我的代码。中提琴!它工作!!