Creo que todos ustedes podrían haber agregado la Fundación AV a la lista de marcos en la pestaña Información general del proyecto.
El código erróneo fue el siguiente:
import SwiftUI
import AVFoundation
struct PlayerDetailView: View {
@State private var downloadedFilePath: URL = nil
var audioPlayer: AVAudioPlayer
var body: some View {
Y después de que moví la var audioPlayer: AVAudioPlayer
declaración justo después de la línea de import AVFoundation
línea, parecía estar funcionando.
Entonces, el siguiente código funcionó para mí en un SwiftUI
proyecto.
import SwiftUI
import AVFoundation
var audioPlayer: AVAudioPlayer!
struct PlayerDetailView: View {
@State private var downloadedFilePath: URL = nil
var body: some View {
VStack {
Button("Play the Downloaded Track") {
if let downloadedPath = self.downloadedFilePath?.path, FileManager().fileExists(atPath: downloadedPath) {
do {
audioPlayer = try AVAudioPlayer(contentsOf: self.downloadedFilePath!)
guard let player = audioPlayer else { return }
player.prepareToPlay()
player.play()
} catch let error {
print(error.localizedDescription)
}
} else {
print("The file doesn not exist at path || may not have been downloaded yet")
}
}
}
}
}
Inicialmente estaba siguiendo este tutorial de CodeWithChris y su discusión también condujo al cambio anterior. También consulte el siguiente tutorial si necesita más ejemplos.
¡Espero que esto sea útil para alguien de ustedes!
¡Salud!