优化逻辑
This commit is contained in:
35
internal/routes/standby/laser.go
Normal file
35
internal/routes/standby/laser.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package standby
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"game-driver/config/game"
|
||||
"game-driver/internal/schema"
|
||||
"game-driver/pkg/oscx"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func LaserShow(item schema.WaitItemModel) func(c context.Context) error {
|
||||
cfg := (game.C).(game.LaserConfig)
|
||||
|
||||
return func(c context.Context) error {
|
||||
zap.S().Infoln("开始播放大型激光秀")
|
||||
|
||||
o := oscx.New(cfg.Host, cfg.Port)
|
||||
err := o.EnableLaserOutput()
|
||||
if err != nil {
|
||||
return fmt.Errorf("激光打开异常: %w", err)
|
||||
} else {
|
||||
defer zap.S().Infoln("大型激光秀播放结束:", item.Data)
|
||||
defer o.DisableLaserOutput()
|
||||
|
||||
err = o.StartCue(item.Data)
|
||||
if err != nil {
|
||||
return fmt.Errorf("播放大型激光节目异常: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
<-c.Done()
|
||||
return nil
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,6 @@ import (
|
||||
"game-driver/pkg/audio"
|
||||
"game-driver/pkg/tts"
|
||||
"go.uber.org/zap"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TTS(item schema.WaitItemModel) func(c context.Context) error {
|
||||
@@ -20,13 +19,8 @@ func TTS(item schema.WaitItemModel) func(c context.Context) error {
|
||||
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):
|
||||
}
|
||||
}
|
||||
audio.PlayWav(c, reader)
|
||||
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import (
|
||||
"game-driver/pkg/utils"
|
||||
"game-driver/pkg/video"
|
||||
"go.uber.org/zap"
|
||||
"time"
|
||||
)
|
||||
|
||||
func Video(item schema.WaitItemModel) func(c context.Context) error {
|
||||
@@ -23,16 +22,10 @@ func Video(item schema.WaitItemModel) func(c context.Context) error {
|
||||
utils.BlankOpen()
|
||||
defer utils.BlankClose()
|
||||
|
||||
for {
|
||||
err := video.Play(c, path, local)
|
||||
if err != nil {
|
||||
return fmt.Errorf("视频播放异常: %w", err)
|
||||
}
|
||||
select {
|
||||
case <-c.Done():
|
||||
return nil
|
||||
case <-time.After(time.Duration(item.Interval) * time.Second):
|
||||
}
|
||||
err = video.Play(c, path, local)
|
||||
if err != nil {
|
||||
return fmt.Errorf("视频播放异常: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user