Как получить последний воспроизведенный элемент в 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)? пожалуйста, помогите мне решить эту проблему.

0 ответов

Другие вопросы по тегам