Files
sst/Sources/SstProbe/RecordProbe.swift
T
2026-10-01 09:46:15 +02:00

25 lines
893 B
Swift

import AVFoundation
import SstCore
/// Records `seconds` of microphone audio; returns nil if access is denied or recording fails.
func recordSamples(seconds: Double) async -> [Float]? {
guard await AVCaptureDevice.requestAccess(for: .audio) else {
print("Microfoon-toegang geweigerd (Systeeminstellingen → Privacy → Microfoon).")
return nil
}
let recorder = AudioRecorder()
do { try recorder.start() } catch {
print("start mislukt:", error.localizedDescription)
return nil
}
print("Neem \(Int(seconds)) s op — praat nu")
try? await Task.sleep(for: .seconds(seconds))
return recorder.stop()
}
func runRecordProbe() async {
guard let samples = await recordSamples(seconds: 3) else { return }
let peak = samples.map { abs($0) }.max() ?? 0
print("samples: \(samples.count) (verwacht ≈ 48000), piek: \(peak)")
}