// // LocalView.swift // Bremer // // Created by yhornisse on 2023/08/22. // import SwiftUI import AVFoundation struct LocalView : View { @EnvironmentObject private var audioPlayerViewModel : AudioPlayerViewModel var body : some View { VStack { Text("ダウンロード済") List { ForEach(audioPlayerViewModel.audioQueue, id:\.slug) {audio in Button(action: { if audioPlayerViewModel.exists(audio.slug) { audioPlayerViewModel.playAudioList(audioList: audioPlayerViewModel.audioQueue, audio: audio, usedBy: "local") } else { // TODO 削除して詰める // localAudioPlayerViewModel.remove } }) { Text("\(audio.name) - \(audio.album ?? "")") .font(.system(size: 14)) .frame(height: 35, alignment: .center) .aspectRatio(contentMode: .fit) } } } .listStyle(.plain) Spacer() Divider() AudioPlayerView(audioPlayerViewModel: audioPlayerViewModel) } .onReceive(NotificationCenter.default.publisher(for: AVAudioSession.routeChangeNotification), perform: { param in audioPlayerViewModel.onChangeAudioSessionRoute(param) }) .onReceive(NotificationCenter.default.publisher(for: AVAudioSession.interruptionNotification), perform: { param in audioPlayerViewModel.onInterrupted(param) }) } }