43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
package video
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
dto "media/model/dto/video"
|
|
service "media/service/video"
|
|
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
)
|
|
|
|
type merge struct{}
|
|
|
|
var Merge = new(merge)
|
|
|
|
// MergeAsync 视频拼接+混音(异步) POST /video/merge/async
|
|
func (c *merge) MergeAsync(ctx context.Context, req *dto.VideoAudioMergeAsyncReq) (res *dto.CreateMergeTaskRes, err error) {
|
|
ctx = withUser(ctx)
|
|
g.Log().Infof(ctx, "[视频拼接+混音-异步] 收到请求 入参: video_count=%d, audio_count=%d, upload=%v, callback=%s",
|
|
len(req.VideoURLs), len(req.AudioURLs), req.Upload, req.CallbackURL)
|
|
|
|
if len(req.VideoURLs) < 1 {
|
|
return nil, fmt.Errorf("至少需要1个视频")
|
|
}
|
|
if len(req.AudioURLs) < 1 {
|
|
return nil, fmt.Errorf("至少需要1个音频")
|
|
}
|
|
|
|
taskID, taskErr := service.Merge.CreateAsyncTask(ctx, req.VideoURLs, req.AudioURLs, req.CallbackURL, req.Upload)
|
|
if taskErr != nil {
|
|
return nil, taskErr
|
|
}
|
|
|
|
return &dto.CreateMergeTaskRes{TaskID: taskID}, nil
|
|
}
|
|
|
|
// GetMergeTask 查询异步拼接+混音任务结果 GET /video/merge/task/{taskId}
|
|
func (c *merge) GetMergeTask(ctx context.Context, req *dto.GetMergeTaskReq) (res *dto.GetMergeTaskRes, err error) {
|
|
ctx = withUser(ctx)
|
|
return service.Merge.GetTaskResult(ctx, req.TaskID)
|
|
}
|