0Pricing
Swift Academy · Урок

Запись аудио

Записывайте звук с микрофона в файл.

«Запись аудио» — бесплатный урок 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 — локальная установка не требуется.

Все уроки этого курса

  1. Воспроизведение медиа с AVPlayer
  2. Запись аудио
  3. AVAsset и композиция
  4. Встраивание проигрывателей в SwiftUI
← Назад к Swift Academy