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
AVAudioPlayer
utilizando el inicializadorinit(contentsOf url: URL)
y pasando un objetoURL
con 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