通过阅读本文,您可以了解通过服务端SDK调用OpenAPI创建智能媒体服务剪辑合成任务的示例代码。
使用说明
创建合成任务时,您可以根据实际需求通过Timeline、TemplateId或ProjectId其中之一创建。
示例代码
您可以通过阿里云OpenAPI开发者门户在线调试。
package main
import (
"fmt"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
ice "github.com/alibabacloud-go/ice-20201109/v2/client"
"github.com/aliyun/credentials-go/credentials"
"github.com/alibabacloud-go/tea/tea"
)
func main() {
// 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
// 本示例以将AccessKey ID和 AccessKey Secret保存在环境变量为例说明。配置方法请参见:https://help.aliyun.com/document_detail/378661.html。
credential, _err := credentials.NewCredential(nil)
if _err != nil {
panic(_err)
}
iceClient, _err := ice.NewClient(&openapi.Config{
Credential: credential,
Endpoint: tea.String("ice.cn-shanghai.aliyuncs.com"),
})
// 如需硬编码AccessKey ID和AccessKey Secret,代码如下,强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
// config := new(openapi.Config)
// config.SetAccessKeyId("<accessKeyId>").
// SetAccessKeySecret("<accessKeySecret>").
// SetRegionId("<regionId>").
// SetEndpoint("<endpoint>")
// iceClient, _err := ice.NewClient(config)
if _err != nil {
panic(_err)
}
// 通过timeline创建合成任务。
timeLine := "{\"VideoTracks\":[{\"VideoTrackClips\":[{\"MediaId\":\"****9b4d7cf14dc7b83b0e801cbe****\"},{\"MediaId\":\"****9b4d7cf14dc7b83b0e801cbe****\"},{\"MediaId\":\"****1656bca4474999c961a6d2a2****\"}]}]}"
outputMediaConfig := "{\"mediaURL\":\"http://ice-editing.oss-cn-hangzhou.aliyuncs.com/ice/\",\"type\":\"unkown\"}"
projectMetadata := "{\"coverURL\":\"http://****/mediaid.jpg\",\"description\":\"description\",\"title\":\"title\"}"
submitMediaProducingJobRequest := ice.SubmitMediaProducingJobRequest{
Timeline: &timeLine,
OutputMediaConfig: &outputMediaConfig,
ProjectMetadata: &projectMetadata,
}
submitMediaProducingJobResult, err := iceClient.SubmitMediaProducingJob(&submitMediaProducingJobRequest)
fmt.Println(submitMediaProducingJobResult, err)
// 通过模板创建合成任务。
templateId := "IceSys_VideoMerge"
clipsParam := "{\"VideoArray\":[\"****g105512043f49f697f74258u****\",\"****f82788e810116a45109f2ebb****\",\"****f267f44f4964e6c998dee89i****\",]}"
submitMediaProducingJobRequest1 := ice.SubmitMediaProducingJobRequest{
TemplateId: &templateId,
ClipsParam: &clipsParam,
ProjectMetadata: &projectMetadata,
}
submitMediaProducingJobResult1, err := iceClient.SubmitMediaProducingJob(&submitMediaProducingJobRequest1)
fmt.Println(submitMediaProducingJobResult1, err)
// 通过project创建合成任务。
projectId := "****9b4d7cf14dc7b83b0e801cbe****"
submitMediaProducingJobRequest2 := ice.SubmitMediaProducingJobRequest{
ProjectId: &projectId,
ProjectMetadata: &projectMetadata,
}
submitMediaProducingJobResult2, err := iceClient.SubmitMediaProducingJob(&submitMediaProducingJobRequest2)
fmt.Println(submitMediaProducingJobResult2, err)
// 获取单个合成任务。
jobId := "****967f44f4964e6c998dee8e****"
getMediaProducingJobRequest := ice.GetMediaProducingJobRequest{
JobId: &jobId,
}
getMediaProducingJobResult, err := iceClient.GetMediaProducingJob(&getMediaProducingJobRequest)
fmt.Println(getMediaProducingJobResult, err)
}
相关接口
该文章对您有帮助吗?