В моем новом проекте SwiftUI у меня есть AVPlayer для потоковой передачи музыки с URL. Теперь мне нужно контролировать текущее время воспроизведения трека и громкость с помощью ползунков, вот часть дизайна:

теперь я могу контролироватьигрок с финальным классом UserData и его @Published vars, например isPlaying :
final class UserData: ObservableObject {
// ...
@Published var player: AVPlayer? = nil
@Published var isPlaying: Bool = false
//...
func playPausePlayer(withSong song: Song, forPlaylist playlist: [Song]?) {
//...
if isPlaying {
player?.pause()
} else {
player?.play()
}
isPlaying.toggle()
}
}
рад знать, есть ли лучшее решение для этой части ?
Проблема в том,что свойства currentTime , duration Я могу взять только от player
или player?.currentItem
, поэтому я не могу сделать слайдер следующим образом:
@EnvironmentObject var userData: UserData
// ...
Slider(value: userData.player?.currentItem?.currentTime()!, in: 0...userData.player?.currentItem?.duration as! Double, step: 1)
Какя могу контролировать эти вещи?