Tôi tin rằng tất cả các bạn có thể đã thêm AVFoundation vào danh sách khung trong tab Thông tin chung của dự án.
Mã sai sót như sau:
import SwiftUI
import AVFoundation
struct PlayerDetailView: View {
@State private var downloadedFilePath: URL = nil
var audioPlayer: AVAudioPlayer
var body: some View {
Và sau khi tôi chuyển var audioPlayer: AVAudioPlayer
tờ khai sang ngay sau dòngimport AVFoundation
nó, nó dường như đang hoạt động.
Vì vậy, mã sau đây làm việc cho tôi trong một SwiftUI
dự án.
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")
}
}
}
}
}
Ban đầu tôi đã làm theo hướng dẫn này của CodeWithChris và cuộc thảo luận của nó cũng dẫn đến sự thay đổi ở trên. Ngoài ra kiểm tra theo hướng dẫn quá nếu bạn cần thêm ví dụ.
Hy vọng điều này sẽ hữu ích cho ai đó của bạn ngoài kia!
Chúc mừng!