0Pricing
Swift Academy · Lekcja

Nagrywanie dźwięku

Przechwytywanie dźwięku z mikrofonu do pliku.

Nagrywanie dźwięku to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.

Nagrywanie za pomocą AVAudioRecorder

AVAudioRecorder przechwytuje dźwięk z mikrofonu i zapisuje go do pliku przy minimalnej konfiguracji — idealnie nadaje się do notatek głosowych i prostych rejestratorów.

import AVFoundation

Uprawnienie do mikrofonu

Nagrywanie wymaga zgody użytkownika. Dodaj NSMicrophoneUsageDescription do pliku Info.plist i poproś o dostęp przed rozpoczęciem nagrywania.

AVAudioApplication.requestRecordPermission { granted in
    if granted { /* start recording */ }
}

Konfigurowanie sesji audio

Ustaw kategorię sesji na .record lub .playAndRecord i aktywuj ją, aby system przekazywał dźwięk z mikrofonu do aplikacji.

let session = AVAudioSession.sharedInstance()
try session.setCategory(.playAndRecord)
try session.setActive(true)

Wybieranie adresu URL pliku

Nagrania są zapisywane do pliku. Utwórz adres URL w katalogu dokumentów, używając odpowiedniego rozszerzenia, na przykład .m4a.

let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let url = dir.appendingPathComponent("memo.m4a")

Ustawienia rejestratora

Ustawienia określają format, częstotliwość próbkowania, liczbę kanałów i jakość za pomocą słownika kluczy AVAudioRecorder.

let settings: [String: Any] = [
    AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
    AVSampleRateKey: 44100,
    AVNumberOfChannelsKey: 1,
    AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
]

Tworzenie rejestratora

Zainicjalizuj AVAudioRecorder za pomocą adresu URL i ustawień, a następnie wywołaj prepareToRecord(), aby przydzielić zasoby.

let recorder = try AVAudioRecorder(url: url, settings: settings)
recorder.prepareToRecord()

Rozpoczynanie i zatrzymywanie

Wywołaj record(), aby rozpocząć nagrywanie, i stop(), aby je zakończyć. Zatrzymanie finalizuje i zamyka plik audio.

recorder.record()
// later
recorder.stop()

Nagrywanie czasowe i wstrzymywane

Możesz nagrywać przez określony czas za pomocą record(forDuration:), a za pomocą pause() / record() wznowić nagrywanie do tego samego pliku.

recorder.record(forDuration: 30) // stop after 30s

Pomiar poziomów

Włącz isMeteringEnabled, a następnie wywołuj updateMeters() i odczytuj averagePower(forChannel:), aby sterować miernikiem poziomu w czasie rzeczywistym.

recorder.isMeteringEnabled = true
recorder.updateMeters()
let power = recorder.averagePower(forChannel: 0) // in dB

Delegat

Zastosuj protokół AVAudioRecorderDelegate, aby dowiedzieć się, kiedy nagrywanie zakończy się pomyślnie lub wystąpi błąd kodowania.

func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder,
                                     successfully flag: Bool) {
    print("finished: \(flag)")
}

Odtwarzanie wyniku

Po nagraniu odtwórz plik za pomocą AVAudioPlayer wskazującego ten sam adres URL — to szybki sposób na sprawdzenie przechwyconego dźwięku.

let player = try AVAudioPlayer(contentsOf: url)
player.play()

Szybkie sprawdzenie: nagrywanie

Sprawdź swoją wiedzę na temat nagrywania dźwięku.

Podsumowanie: nagrywanie dźwięku

AVAudioRecorder przechwytuje dźwięk z mikrofonu do pliku po uzyskaniu zgody użytkownika i aktywowaniu sesji nagrywania AVAudioSession. Podaj adres URL i słownik ustawień (format, częstotliwość próbkowania, liczbę kanałów, jakość), wywołaj prepareToRecord(), a następnie record()/stop().

Włącz pomiar poziomu, aby śledzić go na żywo, użyj delegata do obsługi zakończenia nagrywania i odtwórz plik za pomocą AVAudioPlayer, aby go sprawdzić.

Często zadawane pytania

Czy lekcja „Nagrywanie dźwięku” jest bezpłatna?

Tak — pełny tekst „Nagrywanie dźwięku” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Nagrywanie dźwięku”?

Przechwytywanie dźwięku z mikrofonu do pliku. Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Swift Academy?

Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Nagrywanie dźwięku”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?

Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Odtwarzanie multimediów za pomocą AVPlayer
  2. Nagrywanie dźwięku
  3. AVAsset i kompozycja
  4. Osadzanie odtwarzaczy w SwiftUI
← Powrót do Swift Academy