From ade71a05475fe903474c921284f73af2e2069b82 Mon Sep 17 00:00:00 2001 From: zijiren233 Date: Sat, 7 Oct 2023 12:51:07 +0800 Subject: [PATCH] Fix: set current need clear status --- room/current.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/room/current.go b/room/current.go index 8fe60e59..685ee6e8 100644 --- a/room/current.go +++ b/room/current.go @@ -58,7 +58,7 @@ func (c *Current) SetMovie(movie MovieInfo) { defer c.lock.Unlock() c.movie = movie - c.status.Seek = 0 + c.setSeek(0, 0) } func (c *Current) Status() Status { @@ -101,3 +101,19 @@ func (c *Current) SetSeekRate(seek, rate, timeDiff float64) Status { c.status.lastUpdateTime = time.Now() return c.status } + +func (c *Current) SetSeek(seek, timeDiff float64) Status { + c.lock.Lock() + defer c.lock.Unlock() + return c.setSeek(seek, timeDiff) +} + +func (c *Current) setSeek(seek, timeDiff float64) Status { + if c.status.Playing { + c.status.Seek = seek + (timeDiff * c.status.Rate) + } else { + c.status.Seek = seek + } + c.status.lastUpdateTime = time.Now() + return c.status +}