Cómo reproducir audio usando SwiftUI

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.

// 1
import AVKit
import SwiftUI
struct ContentView: View {
// 2
@State var player: AVAudioPlayer?
func playSong() {
// 3
guard let songPath = Bundle.main.path(forResource: "song", ofType: "mp3") else {
return
}
do {
// 4
player = try AVAudioPlayer(contentsOf: URL(filePath: songPath))
player?.play()
} catch {
// 5
print("Handle error")
}
}
var body: some View {
Button("Play song") {
playSong()
}
}
}
  1. Importamos la librería AVKit.
  2. Creamos una variable de estado de tipo AVAudioPlayer.
  3. 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.
  4. Una vez obtenida la ruta del audio, creamos el AVAudioPlayer utilizando el inicializador init(contentsOf url: URL) y pasando un objeto URL con la ruta del archivo.
  5. En caso de que surja algún problema al crear el AVAudioPlayer, manejamos el error en el bloque catch.

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

Comparte este artículo

Subscríbete a nuestro Newsletter

Mantente al día en el mundo de las aplicaciones móviles con nuestro blog especializado.

Artículos semanales

Todas las semanas artículos nuevos sobre el mundo de las aplicaciones móviles.

No spam

No te enviaremos spam, solo contenido de calidad. Puedes darte de baja cuando quieras.

Contenido de calidad

Nada de contenido generado de manera automática usando ChatGPT.

Recomendaciones

Tips indispensables sobre mejores prácticas y metodologías.

© 2024 AsyncLearn