ios - 为什么在使用 prepareToRecord 时出现 AudioConverterNew 错误?

标签 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 是我的应用程序的名称]。

以下行抛出其中 6 条错误消息:

 audioRecorder.prepareToRecord()

以下行抛出这些错误消息之一:

audioRecorder.record()

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

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

最佳答案

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

关于ios - 为什么在使用 prepareToRecord 时出现 AudioConverterNew 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34972436/

相关文章:

ios - 从烦人格式的字典中提取值

ios - 如何在 iOS 中获取 iPod 库中歌曲的文件位置

ios - Flutter 运行 - 无法构建 iOS 应用程序 - 命令 PhaseScriptExecution 失败,退出代码非零

iphone - 有没有办法在通用应用程序中共享(高分辨率)图形?

ios - 是否可以在没有索引的情况下使用 Realm 对象服务器实时同步?

swift - 在 Swift 4 中加载标签栏后设置标签栏项目徽章

ios - 计时器问题呈现时间

objective-c - iOS >> 单独的 .h&.m 文件来管理 UITableView

ios - Xcode 从顶级对象获取对象

ios - Mapbox 中的 MKUserTrackingBarButtonItem