Saya yakin Anda semua mungkin telah menambahkan AVFoundation ke daftar kerangka kerja di tab Info Umum Proyek.
Kode yang keliru adalah sebagai berikut:
import SwiftUI
import AVFoundation
struct PlayerDetailView: View {
@State private var downloadedFilePath: URL = nil
var audioPlayer: AVAudioPlayer
var body: some View {
Dan setelah saya memindahkan var audioPlayer: AVAudioPlayer
deklarasi ke tepat setelah garis import AVFoundation
garis sepertinya berfungsi.
Jadi kode berikut bekerja untuk saya dalam suatu SwiftUI
proyek.
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")
}
}
}
}
}
Saya awalnya mengikuti tutorial CodeWithChris ini dan pembahasannya juga menyebabkan perubahan di atas. Periksa juga tutorial berikut juga jika Anda membutuhkan contoh lebih lanjut.
Semoga ini bisa membantu seseorang di luar sana!
Bersulang!