Запись аудио
Записывайте звук с микрофона в файл.
«Запись аудио» — бесплатный урок Swift Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.
Запись с помощью AVAudioRecorder
AVAudioRecorder захватывает звук с микрофона в файл практически без дополнительной настройки — это идеальный вариант для голосовых заметок и простых записывающих приложений.
import AVFoundationРазрешение на доступ к микрофону
Для записи требуется разрешение пользователя. Добавьте NSMicrophoneUsageDescription в Info.plist и запросите доступ до начала записи.
AVAudioApplication.requestRecordPermission { granted in
if granted { /* start recording */ }
}Настройка аудиосеанса
Задайте для сеанса категорию .record или .playAndRecord и активируйте его, чтобы система направляла входной сигнал микрофона в приложение.
let session = AVAudioSession.sharedInstance()
try session.setCategory(.playAndRecord)
try session.setActive(true)Выбор URL файла
Записи сохраняются в файл. Создайте URL в каталоге документов, указав подходящее расширение, например .m4a.
let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let url = dir.appendingPathComponent("memo.m4a")Настройки записи
Настройки задают формат, частоту дискретизации, количество каналов и качество с помощью словаря ключей AVAudioRecorder.
let settings: [String: Any] = [
AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
AVSampleRateKey: 44100,
AVNumberOfChannelsKey: 1,
AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
]Создание записывающего устройства
Инициализируйте AVAudioRecorder с URL и настройками, затем вызовите prepareToRecord(), чтобы выделить необходимые ресурсы.
let recorder = try AVAudioRecorder(url: url, settings: settings)
recorder.prepareToRecord()Запуск и остановка
Вызовите record(), чтобы начать запись, и stop(), чтобы завершить её. Остановка завершает обработку и закрывает аудиофайл.
recorder.record()
// later
recorder.stop()Запись с ограничением времени и паузой
Вы можете записывать в течение заданного времени с помощью record(forDuration:), а с помощью pause() и record() продолжить запись в тот же файл.
recorder.record(forDuration: 30) // stop after 30sУровни громкости
Включите isMeteringEnabled, затем вызовите updateMeters() и прочитайте averagePower(forChannel:), чтобы управлять индикатором уровня в реальном времени.
recorder.isMeteringEnabled = true
recorder.updateMeters()
let power = recorder.averagePower(forChannel: 0) // in dBДелегат
Реализуйте протокол AVAudioRecorderDelegate, чтобы узнавать об успешном завершении записи или ошибке кодирования.
func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder,
successfully flag: Bool) {
print("finished: \(flag)")
}Воспроизведение результата
После записи воспроизведите файл с помощью AVAudioPlayer, указав тот же URL. Это быстрый способ проверить результат захвата.
let player = try AVAudioPlayer(contentsOf: url)
player.play()Быстрая проверка: запись
Проверьте, насколько хорошо Вы понимаете запись звука.
Итоги: запись звука
AVAudioRecorder записывает звук с микрофона в файл после того, как Вы запросите разрешение и активируете записывающий AVAudioSession. Укажите URL и словарь настроек (формат, частоту дискретизации, количество каналов и качество), вызовите prepareToRecord(), а затем record()/stop().
Включите измерение уровня для отображения показателей в реальном времени, используйте делегат для обработки завершения и воспроизведите запись с помощью AVAudioPlayer, чтобы проверить результат.
Часто задаваемые вопросы
Урок «Запись аудио» бесплатный?
Да — полный текст урока «Запись аудио» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.
Чему я научусь в уроке «Запись аудио»?
Записывайте звук с микрофона в файл. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Swift Academy?
Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Запись аудио»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Swift Academy?
Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Воспроизведение медиа с AVPlayer
- Запись аудио
- AVAsset и композиция
- Встраивание проигрывателей в SwiftUI