.playing(progress: state.time / state.duration) return .run { [ url = state.url, time = state.time, playSpeed = state.playSpeed, isLoop = state.isLooping ] send in await send(.delegate(.playbackStarted)) async let playAudio: Void = send( .audioPlayerClient(TaskResult { try await self.audioPlayer.play(url, time, playSpeed, isLoop) }, .autom ) for await _ in self.clock.timer(interval: .milliseconds(500)) { let time = try await self.audioPlayer.getCurrentTime() await send(.timerUpdated(time)) } await playAudio }.cancellable(id: CancelID.play, cancelInFlight: true) 1.࠶ੜঢ়ଶͷมߋ 2.ඇಉظͰAudioPlayerΛ࣮ߦ 3.Ұཡը໘Ի͕
։࢝ͨ͜͠ͱΛ௨