AVAudioRecorder
으로 오디오를 녹음하려고합니다. 나는이 같은 간단한 파형을 생성해야합니다iOS : 간단한 오디오 파형 애니메이션을 만듭니다.
사용자가 마이크에 대고 말을하면 원이 사용자의 음성의 수준을 나타냅니다. 나는이 코드를 사용하여 음성을 측정하기 위해 시도했지만 코드는 버퍼를 감지하지 작동하지 않았다
func levelTimerCallback(timer:Timer) {
//we have to update meters before we can get the metering values
audioRecorder.updateMeters()
//print to the console if we are beyond a threshold value. Here I've used -7
if audioRecorder.averagePower(forChannel: 1) > -7 {
print(" level I'm hearin' you in dat mic ")
print(audioRecorder.averagePower(forChannel: 0))
}
}
오디오 녹음 : 내가 볼 수
func startRecording() {
let audioSession = AVAudioSession.sharedInstance()
do {
// Audio Settings
settings = [
AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
AVSampleRateKey: 12000,
AVNumberOfChannelsKey: 1,
AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
]
audioRecorder = try AVAudioRecorder(url: self.directoryURL(), settings: settings)
audioRecorder.delegate = self
audioRecorder.prepareToRecord()
audioRecorder.isMeteringEnabled = true
} catch {
finishRecording(success: false)
}
do {
try audioSession.setActive(true)
audioRecorder.record()
TIMERRRRR = Timer.scheduledTimer(timeInterval: 0.02, target: self, selector: #selector(ViewController.levelTimerCallback), userInfo: nil, repeats: true)
} catch {
}
}
내가 오른쪽에 가까운 생각 대답에 뭔가를 추가 한 고정. –
하지만 한 가지 문제는 편집 된 코드를 확인할 수 있습니까? –
귀하의 비율이 0과 1 사이라면, 저에게는 괜찮아 보입니다. –