Files
game-driver/internal/routes/standby/tts.go
2025-03-05 11:03:19 +08:00

33 lines
641 B
Go

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):
}
}
}
}