package video import ( "context" "fmt" dto "media/model/dto/video" service "media/service/video" "github.com/gogf/gf/v2/frame/g" ) type sceneSplit struct{} var SceneSplit = new(sceneSplit) // CreateSceneSplit 创建场景分割任务 POST /video/scene-split func (c *sceneSplit) CreateSceneSplit(ctx context.Context, req *dto.SceneSplitReq) (res *dto.CreateSceneSplitTaskRes, err error) { ctx = withUser(ctx) g.Log().Infof(ctx, "[场景分割] 收到请求 入参: videoUrl=%s, threshold=%.1f, callback=%s", req.VideoURL, req.Threshold, req.CallbackURL) if req.VideoURL == "" { return nil, fmt.Errorf("视频URL不能为空") } taskID, taskErr := service.SceneSplit.CreateAsyncTask(ctx, req.VideoURL, req.Threshold, req.CallbackURL) if taskErr != nil { return nil, taskErr } return &dto.CreateSceneSplitTaskRes{TaskID: taskID}, nil } // GetSceneSplitTask 查询场景分割任务结果 GET /video/scene-split/task/{taskId} func (c *sceneSplit) GetSceneSplitTask(ctx context.Context, req *dto.GetSceneSplitTaskReq) (res *dto.GetSceneSplitTaskRes, err error) { ctx = withUser(ctx) return service.SceneSplit.GetTaskResult(ctx, req.TaskID) }