package standby import ( "context" "fmt" "game-driver/internal/schema" "game-driver/pkg/audio" "game-driver/pkg/tts" "go.uber.org/zap" "time" ) func TTS(item schema.WaitItemModel) func(c context.Context) error { return func(c context.Context) error { reader, err := tts.DefaultTTS.Get(item.Data) if err != nil { return fmt.Errorf("语音合成异常: %w", err) } zap.S().Infoln("播放待机 TTS 语音") defer zap.S().Infoln("结束待机 TTS 语音") for { audio.PlayWav(c, reader) select { case <-c.Done(): return nil case <-time.After(time.Duration(item.Interval) * time.Second): } } } }