Files
InfinifiIOS/InfinifiIOS/ContentView.swift
Kenneth 352f5f01cf fix: preload first track to avoid ui freeze
Preload the first track to avoid ui stutter when the play button is
first pressed
2024-07-28 17:31:05 +01:00

57 lines
1.3 KiB
Swift

import AVKit
import SwiftUI
struct ContentView: View {
@ObservedObject private var playbackManager = PlaybackManager()
private func toggleAudioPlayback() {
switch playbackManager.playbackState {
case .playing:
playbackManager.stop()
case .paused:
playbackManager.nextTrack()
default:
break
}
}
var body: some View {
let buttonImageName = switch playbackManager.playbackState {
case .paused: "play"
case .playing: "pause"
case .loading: "dot.square"
default: ""
}
VStack(alignment: .center) {
Text("infinifi")
.font(.system(.title3, design: .monospaced))
.fontWeight(.bold)
.padding()
Spacer()
if playbackManager.playbackState != .initializing {
NeuButton(action: {
toggleAudioPlayback()
}) {
Image(systemName: buttonImageName)
.font(.system(size: 24))
.tint(.text)
}
}
Spacer()
}
.frame(
maxWidth: .infinity,
maxHeight: .infinity
)
.background(.base)
}
}
#Preview {
ContentView()
}