Files
media/controller/video/scene_split_controller.go
T
2026-06-22 09:18:45 +08:00

40 lines
1.1 KiB
Go

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