Cómo reproducir audio usando SwiftUI

Marcelo Laprea
01 mayo, 20242min de lectura
Reproducir audio en SwiftUI es sencillo. Solo necesitamos importar AVKit, utilizar AVAudioPlayer y agregar un archivo de audio en formato .mp3 al proyecto. Veamos cómo hacerlo:
Además del formato .mp3, también podemos agregar archivos de audio en otros formatos como .wav, .aac, entre otros.
// 1import AVKitimport SwiftUIstruct ContentView: View {// 2@State var player: AVAudioPlayer?func playSong() {// 3guard let songPath = Bundle.main.path(forResource: "song", ofType: "mp3") else {return}do {// 4player = try AVAudioPlayer(contentsOf: URL(filePath: songPath))player?.play()} catch {// 5print("Handle error")}}var body: some View {Button("Play song") {playSong()}}}
- Importamos la librería AVKit.
- Creamos una variable de estado de tipo
AVAudioPlayer. - Encontramos la ruta del audio que queremos reproducir usando
Bundle.main.path(forResource name: String?, ofType ext: String?), especificando el nombre del archivo y su tipo. - Una vez obtenida la ruta del audio, creamos el
AVAudioPlayerutilizando el inicializadorinit(contentsOf url: URL)y pasando un objetoURLcon la ruta del archivo. - En caso de que surja algún problema al crear el
AVAudioPlayer, manejamos el error en el bloquecatch.
Cómo pausar o detener la reproducción
Para pausar o detener la reproducción de un audio, utilizamos las funciones proporcionadas por AVAudioPlayer:
Pausar audio
player.pause()
Detener audio
player.stop()
Cómo reproducir el audio en bucle
Para reproducir un audio en bucle, ajustamos el atributo numberOfLoops del AVAudioPlayer, indicando el número de repeticiones deseadas.
player.numberOfLoops = 5
Si queremos reproducirlo de manera indefinida, asignamos el valor -1.
player.numberOfLoops = -1