2016-01-24 119 views
2

当我使用的代码:为什么使用prepareToRecord时会出现AudioConverterNew错误?

@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

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

相关问题