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 AVFoundationUprawnienie 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 30sPomiar 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 dBDelegat
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
- Odtwarzanie multimediów za pomocą AVPlayer
- Nagrywanie dźwięku
- AVAsset i kompozycja
- Osadzanie odtwarzaczy w SwiftUI