[英]Detect how long a sound is in iOS
我在AVFoundation中使用音頻計量,我想知道是否有一種方法可以計算出聲音多長時間。 我的錄音機設置如下:
func startMeterTimer() {
levelTimer?.invalidate()
levelTimer = CADisplayLink(target: self, selector: "updateMeter")
levelTimer?.frameInterval = 5
levelTimer?.addToRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes)
}
func stopMeterTimer() {
levelTimer?.invalidate()
levelTimer = nil
}
func updateMeter() {
readLevels()
let avgPower = audioRecorder?.averagePowerForChannel(0)
let peakPower = audioRecorder?.peakPowerForChannel(0)
if peakPower >= -2 {
print("CLAP DETECTED")
soundLogicDelegate?.clapDetected()
}
// print("\(avgPower) + \(peakPower)")
}
func record() -> Bool {
return (audioRecorder?.record())!
}
記錄和startMeterTImer被調用,並且當我拍手時,即使我只拍過一次,我也會得到很多CLAP DETECTED的打印語句。 我想知道是否有一種方法可以衡量從第一次調用到最后一次調用該方法的時間。
使用audioRecorderDidFinishRecording
委托方法,它的參數之一是具有currentTime
屬性的AVAudioRecorder
實例:
自錄制開始以來的時間(以秒為單位)。 (只讀)
如果您想在每次調用updateMeter()
時檢查記錄時間,請使用audioRecorder?.currentTime
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.