Как мне заставить работать микрофон моего компьютера нажатием кнопки? - Xcode 11 - PullRequest
0 голосов
/ 24 апреля 2020

Я сейчас работаю над проектом для Udacity. (Примечание: они не совсем полезны.) В проекте вы должны нажать кнопку записи, затем нажать кнопку остановки. Затем вы попадаете на второй экран, где вы сможете нажимать различные кнопки для воспроизведения вашего голоса. Мое приложение не воспроизводит мой голос.

Я получаю эту ошибку, которая может относиться или не иметь отношения:

2020-04-23 18:33:04.071824-0700 PitchPerfect[8222:13398558] [plugin] 
AddInstanceForFactory: No factory registered for id <CFUUID 0x600002752c20> 
F8BB1C28-BAE8-11D6-9C31-00039315CD46

Единственное, что я сделал, это добавил микрофон к информации. plist:

enter image description here

Я перезапустил Xcode и Simulator. Не повезло.

Я использую Xcode 11.4.1. Вот соответствующий код (он опирается на другой файл):

import UIKit
import AVFoundation

class PlaySoundsViewController: UIViewController {

   // MARK: Outlets

   @IBOutlet weak var snailButton: UIButton!
   @IBOutlet weak var chipmunkButton: UIButton!
   @IBOutlet weak var rabbitButton: UIButton!
   @IBOutlet weak var vaderButton: UIButton!
   @IBOutlet weak var echoButton: UIButton!
   @IBOutlet weak var reverbButton: UIButton!
   @IBOutlet weak var stopButton: UIButton!

   var recordedAudioURL: URL!
   var audioFile:AVAudioFile!
   var audioEngine:AVAudioEngine!
   var audioPlayerNode: AVAudioPlayerNode!
   var stopTimer: Timer!

   enum ButtonType: Int {
       case slow = 0, fast, chipmunk, vader, echo, reverb
   }

   // MARK: Actions

   @IBAction func playSoundForButton(_ sender: UIButton) {
    switch(ButtonType(rawValue: sender.tag)!) {
    case .slow:
        playSound(rate: 0.5)
    case .fast:
        playSound(rate: 1.5)
    case .chipmunk:
        playSound(pitch: 1000)
    case .vader:
        playSound(pitch: -1000)
    case .echo:
        playSound(echo: true)
    case .reverb:
        playSound(reverb: true)
    }

    configureUI(.playing)
}

@IBAction func stopButtonPressed(_ sender: AnyObject) {
    stopAudio()
}

override func viewDidLoad() {
    super.viewDidLoad()
    setupAudio()
    // Do any additional setup after loading the view.
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    configureUI(.notPlaying)
}

}

Есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 24 апреля 2020

Я собираюсь догадаться, что проблема в следующем выражении:

AVAudioRecorder(url: filePath!, settings: [:])

Вы не уйдете далеко без настроек для вашей записи. Итак, вы играете в тишину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...