ฉันเชื่อว่าคุณทุกคนอาจเพิ่ม AVFoundation ไปยังรายการกรอบงานในแท็บข้อมูลทั่วไปของโครงการ
รหัสผิดพลาดเป็นดังนี้:
import SwiftUI
import AVFoundation
struct PlayerDetailView: View {
@State private var downloadedFilePath: URL = nil
var audioPlayer: AVAudioPlayer
var body: some View {
และหลังจากที่ฉันย้ายvar audioPlayer: AVAudioPlayer
ประกาศไปหลังimport AVFoundation
แถวมันก็ดูเหมือนจะทำงาน
ดังนั้นรหัสต่อไปนี้ทำงานให้ฉันในSwiftUI
โครงการ
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")
}
}
}
}
}
ฉันเริ่มติดตามการสอนของCodeWithChris นี้และการสนทนาก็นำไปสู่การเปลี่ยนแปลงข้างต้น เช็คเอาต์กวดวิชาต่อไปนี้ด้วยหากคุณต้องการตัวอย่างเพิ่มเติม
หวังว่านี่จะเป็นประโยชน์กับคนที่คุณรัก!
ไชโย!