diff --git a/internal/routes/play/only_video.go b/internal/routes/play/only_video.go index f42c368..9b171a9 100644 --- a/internal/routes/play/only_video.go +++ b/internal/routes/play/only_video.go @@ -6,14 +6,15 @@ import ( "game-driver/leaf" "game-driver/pkg/utils" "game-driver/pkg/video" + "go.uber.org/zap" ) func OnlyVideo(c *leaf.Context) { payload := leaf.Value[*schema.PlayModal](c, middleware.PayloadJSONKey) - utils.BlankOpen() - defer utils.BlankClose() + // utils.BlankOpen() + // defer utils.BlankClose() if url, ok := payload.Game["video"]; ok { path, local, err := utils.LinkVideo(url.(string)) diff --git a/internal/routes/standby/video.go b/internal/routes/standby/video.go index eb2ca56..f11475c 100644 --- a/internal/routes/standby/video.go +++ b/internal/routes/standby/video.go @@ -6,6 +6,7 @@ import ( "game-driver/internal/schema" "game-driver/pkg/utils" "game-driver/pkg/video" + "go.uber.org/zap" ) @@ -19,8 +20,8 @@ func Video(item schema.WaitItemModel) func(c context.Context) error { zap.S().Infoln("播放待机视频") defer zap.S().Infoln("结束待机视频") - utils.BlankOpen() - defer utils.BlankClose() + // utils.BlankOpen() + // defer utils.BlankClose() err = video.Play(c, path, local) if err != nil { diff --git a/internal/routes/standby/web.go b/internal/routes/standby/web.go index 4bb488f..bbe7ce6 100644 --- a/internal/routes/standby/web.go +++ b/internal/routes/standby/web.go @@ -4,7 +4,7 @@ import ( "context" "game-driver/internal/schema" "game-driver/pkg/browser" - "game-driver/pkg/utils" + "go.uber.org/zap" ) @@ -13,8 +13,8 @@ func Web(item schema.WaitItemModel) func(c context.Context) error { zap.S().Infoln("打开待机网页") // 控制背光 - utils.BlankOpen() - defer utils.BlankClose() + // utils.BlankOpen() + // defer utils.BlankClose() browser.OpenApp(c, item.Data) return nil diff --git a/internal/server.go b/internal/server.go index e5cbd4a..5285de0 100644 --- a/internal/server.go +++ b/internal/server.go @@ -101,7 +101,7 @@ func Run() { zap.S().Infoln("当前IP: ", addrs) // 启动时关闭屏幕 - utils.BlankClose() + // utils.BlankClose() topicPrefix := fmt.Sprintf("server/%s/%v/", config.C.Location, config.C.Point) publishTopic := fmt.Sprintf("device/%s/%v/status", config.C.Location, config.C.Point) diff --git a/pkg/utils/blank.go b/pkg/utils/blank.go index 8135f03..9b890a2 100644 --- a/pkg/utils/blank.go +++ b/pkg/utils/blank.go @@ -3,12 +3,26 @@ package utils import ( "os" "os/exec" + "sync" ) +var ( + xsetBin string + once sync.Once +) + +func init() { + once.Do(func() { + if found, err := exec.LookPath("xset"); err == nil { + xsetBin = found + } + }) +} + // BlankOpen 打开屏幕 func BlankOpen() { - if found, err := exec.LookPath("xset"); err == nil { - exec.Command(found, "dpms", "force", "on").Run() + if xsetBin != "" { + exec.Command(xsetBin, "dpms", "force", "on").Run() return } os.WriteFile("/sys/class/graphics/fb0/blank", []byte("0"), 0644) @@ -16,8 +30,8 @@ func BlankOpen() { // BlankClose 关闭屏幕 func BlankClose() { - if found, err := exec.LookPath("xset"); err == nil { - exec.Command(found, "dpms", "force", "off").Run() + if xsetBin != "" { + exec.Command(xsetBin, "dpms", "force", "off").Run() return } os.WriteFile("/sys/class/graphics/fb0/blank", []byte("1"), 0644)