Я хочу воспроизвести загруженный локальный аудиофайл, но он не воспроизводится:
class AVPlayerService {
static let instance = AVPlayerService()
private var audioPlayer: AVPlayer!
public weak var delegate: AVPlayerServiceDelegate?
func setupPlayer(forURL url: URL) {
let playerItem: AVPlayerItem = AVPlayerItem(url: URL(fileURLWithPath: "\(url)")
audioPlayer = AVPlayer(playerItem: playerItem)
audioPlayer.play()
}
Я получаю локальный файл здесь, а затем вызываю его в моем контроллере представления:
func getDownloadedSurahFor(surah: Surah, reciter: Reciter) -> (Exists, URL?) {
let documentsDirectoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
// lets create your destination file url
let destinationUrl = documentsDirectoryURL.appendingPathComponent("\(reciter.name): \(surah.number)")
print(destinationUrl)
// to check if it exists before downloading it
if FileManager.default.fileExists(atPath: destinationUrl.path) {
print("Already downloaded")
return (.exists, destinationUrl)
} else {
return (.doesNotExist, nil)
}
}
В моем Viewcontroller я проверяю, существует ли он, и затем я вызываю setupPlayer:
let (exists, url) = DataService.instance.getDownloadedSurahFor(surah: playingSurah, reciter: reciter)
if exists == .exists {
self.audioService.setupPlayer(forURL: url!)
self.setupSlider()
self.changeButtonTo(.pause)
print("Downloaded file should now play")
}