2016-01-24 89 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設備,然後在模擬器中重建了我的代碼。中提琴!有效!!

相關問題