Swift Academy · Oppitunti

Äänen tallentaminen

Tallenna mikrofonin syöte tiedostoon.

Oppitunti 2/413 vaihetta

Äänen tallentaminen on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Swift Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Swift Academy-kurssilla on yhteensä 4 oppituntia.

Tallentaminen AVAudioRecorderilla

AVAudioRecorder kaappaa mikrofonin ääntä tiedostoon vähäisellä määrityksellä. Se sopii erinomaisesti äänimuistioihin ja yksinkertaisiin tallentimiin.

import AVFoundation

Mikrofonin käyttöoikeus

Tallentaminen edellyttää käyttäjän lupaa. Lisää NSMicrophoneUsageDescription Info.plist-tiedostoon ja pyydä käyttöoikeutta ennen tallentamista.

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

Audioistunnon määrittäminen

Aseta istunnon kategoriaksi .record tai .playAndRecord ja aktivoi istunto, jotta järjestelmä reitittää mikrofonin syötteen sovellukseesi.

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

Tiedoston URL-osoitteen valitseminen

Tallenteet kirjoitetaan tiedostoon. Muodosta URL-osoite documents-hakemistoon ja käytä sopivaa päätettä, kuten .m4a.

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

Tallentimen asetukset

Asetukset määrittävät muodon, näytteenottotaajuuden, kanavat ja laadun AVAudioRecorder-avainten sanakirjan avulla.

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

Tallentimen luominen

Alusta AVAudioRecorder URL-osoitteella ja asetuksilla ja kutsu sitten prepareToRecord() resurssien varaamiseksi.

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

Käynnistäminen ja pysäyttäminen

Aloita tallennus kutsumalla record() ja lopeta se kutsumalla stop(). Pysäyttäminen viimeistelee ja sulkee äänitiedoston.

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

Ajastettu ja keskeytetty tallennus

Voit tallentaa ennalta määrätyn ajan record(forDuration:)-metodilla ja jatkaa samaan tiedostoon kutsuilla pause() ja record().

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

Äänitasojen mittaaminen

Ota isMeteringEnabled käyttöön, kutsu sitten updateMeters()-metodia ja lue averagePower(forChannel:)-arvoa reaaliaikaisen tasomittarin ohjaamiseksi.

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

Delegaatti

Toteuta AVAudioRecorderDelegate-protokolla, niin saat tiedon tallennuksen onnistuneesta päättymisestä tai koodausvirheestä.

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

Tuloksen toistaminen

Toista tallennuksen jälkeen tiedosto AVAudioPlayer-luokalla käyttämällä samaa URL-osoitetta. Näin voit nopeasti varmistaa tallennuksen onnistumisen.

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

Pikatarkistus: tallentaminen

Testaa, miten hyvin ymmärrät äänen tallentamisen.

Kertaus: äänen tallentaminen

AVAudioRecorder kaappaa mikrofonin äänen tiedostoon sen jälkeen, kun olet pyytänyt käyttöoikeuden ja aktivoinut tallentamiseen tarkoitetun AVAudioSession-istunnon. Anna URL-osoite ja asetussanakirja (muoto, näytteenottotaajuus, kanavat ja laatu), kutsu prepareToRecord() ja käytä sitten metodeja record() ja stop().

Ota tasomittaus käyttöön reaaliaikaisia tasoja varten, käytä delegaattia valmistumisesta ilmoittamiseen ja toista tallenne AVAudioPlayer-luokalla sen varmistamiseksi.

Aloita maksutta

Opi Swift tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
122
Oppitunnit
409

Usein kysytyt kysymykset

Onko oppitunti ”Äänen tallentaminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “Äänen tallentaminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Swift Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Äänen tallentaminen”?

Tallenna mikrofonin syöte tiedostoon. Harjoittelet Swift Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Swift Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Swift Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Äänen tallentaminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Swift Academy-oppitunnilla?

Kyllä. Jokainen Swift Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Median toistaminen AVPlayerilla
  2. Äänen tallentaminen
  3. AVAsset ja kompositio
  4. Soittimien upottaminen SwiftUIhin
← Takaisin: Swift Academy