Как получить последний воспроизведенный элемент в swiftUI?
У меня есть альбомы с набором песен, и все доступные альбомы отображаются в цикле. Я хочу получить последний воспроизведенный альбом (идентификатор или имя) и отобразить, какой альбом воспроизводится в данный момент или какой из них воспроизводился последним.
Это код в моей модели
struct MyModel: Codable{
var album = Array<Albums>()
var currentAlbum = 0
}
struct Album : Codable{
var alName : String
var aURL: String
var song = Array<Songs>()
struct Songs : Codable, Identifiable{
var id : Int
var sURL : String
init(id:Int, sURL: String) {
self.id = id
self.sURL = aURL
}
}
}
init(){
currentAlbum = 0
album = Array<Albums>()
album.append(Albums(alName: "Jazz", aURL: "jazz.mp3"))
album[0].song.append(Albums.Songs(id: 1, sURL: "jazz1.mp3"))
album[0].song.append(Albums.Songs(id: 2, sURL: "jazz2.mp3"))
album.append(Albums(alName: "Pop", aURL: "pop.mp3"))
album[1].song.append(Albums.Songs(id: 1, sURL: "pop1.mp3"))
album[1].song.append(Albums.Songs(id: 2, sURL: "pop2.mp3"))
}
Это код, в котором существуют игроки
Button(action: myViewModel.play
){
Image(systemName: myViewModel.isPlaying ? "pause.fill" : "play.fill")
.aspectRatio(contentMode: .fit)
.clipShape(Circle())
}.onAppear(perform: {
myViewModel.play()
})
Это код из моей модели просмотра
func play(){
let path = Bundle.main.path(forResource: myModel.album[0].song[0].sURL, ofType:nil)!
let url = URL(fileURLWithPath: path)
do{
player = try AVAudioPlayer(contentsOf: url)
if player.isPlaying{
player.pause()
}
else{
player.play()
}
isPlaying = player.isPlaying
}catch{print("error")}
}
Я хочу напечатать имя или идентификатор последнего воспроизведенного «Альбома». Как передать идентификатор в переменную (currentAlbum)? пожалуйста, помогите мне решить эту проблему.