Please tell me, can I get an error when setting up an AVURLAsset(url: audioURL) session if the url is not available (errors 404, 500, etc.)?
func playTrack(at index: Int) {
let audioURLString = "https://p.scdn.co/mp3-preview/8c809c18b545d1d745fb90301b4ccbf95f68a4f9?cid=9d2598ec34c2409a9b895a657822c718"
let encodedAudioURLString = audioURLString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
guard let encodedURLString = encodedAudioURLString, let audioURL = URL(string: encodedURLString) else {
print("Invalid URL")
return
}
if let player = player {
let asset = AVURLAsset(url: audioURL)
let playerItem = AVPlayerItem(asset: asset)
player.replaceCurrentItem(with: playerItem)
NotificationCenter.default.addObserver(
forName: .AVPlayerItemPlaybackStalled,
object: playerItem,
queue: .main
) { [weak self] _ in
self?.player?.play()
}
} else {
let asset = AVURLAsset(url: audioURL)
let playerItem = AVPlayerItem(asset: asset)
player = AVPlayer(playerItem: playerItem)
setupTimeObserver()
player?.play()
}
currentTrackIndex = index
}