Swift Academy · Lektion

Spela in ljud

Fånga mikrofonens indata till en fil.

Lektion 2 av 413 steg

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 AVFoundation

Mikrofonbehö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 30s

Mä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 dB

Delegeraren

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.

Gratis att börja

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.

Alla lektioner i den här kursen

  1. Spela upp media med AVPlayer
  2. Spela in ljud
  3. AVAsset och komposition
  4. Bädda in spelare i SwiftUI
← Tillbaka till Swift Academy