package standby import ( "context" "errors" "fmt" "game-driver/internal/schema" "game-driver/pkg/audio" "game-driver/pkg/tts" "go.uber.org/zap" "io" ) func TTS(item schema.WaitItemModel) func(c context.Context) error { return func(c context.Context) error { reader, err := tts.DefaultTTS.Get(c, item.Data) if err != nil { return fmt.Errorf("语音合成异常: %w", err) } zap.S().Infoln("播放待机 TTS 语音") defer zap.S().Infoln("结束待机 TTS 语音") err = audio.PlayWav(c, io.NopCloser(reader)) if err != nil && !errors.Is(err, context.Canceled) { zap.S().Errorf("TTS 播放失败: %v", err) } return nil } }