Spela in ljud
Fånga mikrofonens indata till en fil.
Spela in ljud är en gratis lektion i Swift Academy på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Swift Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Swift Academy innehåller totalt 4 lektioner.
Spela in med AVAudioRecorder
AVAudioRecorder fångar ljud från mikrofonen till en fil med minimal konfiguration – idealiskt för röstmemon och enkla inspelare.
import AVFoundationMikrofonbehörighet
Inspelning kräver användarens behörighet. Lägg till NSMicrophoneUsageDescription i Info.plist och begär åtkomst innan inspelningen startar.
AVAudioApplication.requestRecordPermission { granted in
if granted { /* start recording */ }
}Konfigurera ljudsessionen
Ange sessionskategorin till .record eller .playAndRecord och aktivera den så att systemet dirigerar mikrofoninmatningen till appen.
let session = AVAudioSession.sharedInstance()
try session.setCategory(.playAndRecord)
try session.setActive(true)Välja en fil-URL
Inspelningar skrivs till en fil. Skapa en URL i dokumentkatalogen med en lämplig filändelse, till exempel .m4a.
let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let url = dir.appendingPathComponent("memo.m4a")Inspelarens inställningar
Inställningarna definierar format, samplingsfrekvens, kanaler och kvalitet via en ordlista med nycklar för AVAudioRecorder.
let settings: [String: Any] = [
AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
AVSampleRateKey: 44100,
AVNumberOfChannelsKey: 1,
AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
]Skapa inspelaren
Initiera AVAudioRecorder med URL:en och inställningarna och anropa sedan prepareToRecord() för att allokera resurser.
let recorder = try AVAudioRecorder(url: url, settings: settings)
recorder.prepareToRecord()Starta och stoppa
Anropa record() för att börja och stop() för att avsluta. När inspelningen stoppas slutförs och stängs ljudfilen.
recorder.record()
// later
recorder.stop()Tidsbegränsad och pausad inspelning
Inspelning kan göras under en fast varaktighet med record(forDuration:), och pause() / record() kan användas för att fortsätta i samma fil.
recorder.record(forDuration: 30) // stop after 30sMäta ljudnivåer
Aktivera isMeteringEnabled, anropa sedan updateMeters() och läs av averagePower(forChannel:) för att styra en mätare som visar nivån i realtid.
recorder.isMeteringEnabled = true
recorder.updateMeters()
let power = recorder.averagePower(forChannel: 0) // in dBDelegeraren
Anpassa till AVAudioRecorderDelegate för att få veta när inspelningen slutförs korrekt eller när ett kodningsfel uppstår.
func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder,
successfully flag: Bool) {
print("finished: \(flag)")
}Spela upp resultatet
Efter inspelningen kan ni spela upp filen med AVAudioPlayer som använder samma URL – ett snabbt sätt att verifiera inspelningen.
let player = try AVAudioPlayer(contentsOf: url)
player.play()Snabbtest: Inspelning
Testa förståelsen av ljudinspelning.
Sammanfattning: Spela in ljud
AVAudioRecorder fångar mikrofonljud till en fil efter att ni har begärt behörighet och aktiverat en inspelningsinriktad AVAudioSession. Ange en URL och en inställningsordlista (format, samplingsfrekvens, kanaler och kvalitet), anropa prepareToRecord() och därefter record()/stop().
Aktivera nivåmätning för nivåer i realtid, använd delegeraren för att hantera slutförandet och spela upp med AVAudioPlayer för att verifiera inspelningen.
Lär dig Swift med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 122
- Lektioner
- 409
Vanliga frågor
Är lektionen ”Spela in ljud” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Swift Academy, inklusive ”Spela in ljud”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Swift Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Spela in ljud”?
Fånga mikrofonens indata till en fil. Ni övar på Swift Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Swift Academy?
Du behöver inga förkunskaper. Utbildningen i Swift Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Spela in ljud”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Swift Academy-lektionen?
Ja. Varje Swift Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.