截图任务
通过阅读本文,您可以了解通过服务端SDK调用OpenAPI发起并查询智能媒体服务截图任务的示例代码。
使用说明
发起截图任务前,需要先创建截图模板。通过TemplateId(截图模板ID)发起截图任务,发起截图任务时,支持对截图模板参数进行覆盖重置,截图任务处理成功后,可以根据返回的JobId(任务ID)查询该截图任务的详细信息、截图任务列表及截图的访问URL。
示例代码
您可以通过阿里云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保存在环境变量为例说明。
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)
}
// 创建截图模板。
templateName := "sdk_sample_snapshot_template"
templateType := int32(2)
snapshotTemplateConfig := "{\"Type\":\"Normal\",\"FrameType\":\"normal\",\"Time\":0,\"Count\":10}"
createCustomTemplateRequest := &ice.CreateCustomTemplateRequest{
Name: &templateName,
Type: &templateType,
TemplateConfig: &snapshotTemplateConfig,
}
createCustomTemplateResponse, err := iceClient.CreateCustomTemplate(createCustomTemplateRequest)
fmt.Println(createCustomTemplateResponse, err)
// 发起截图任务。
templateId := createCustomTemplateResponse.Body.CustomTemplate.TemplateId
jobName := "sdk_sample_snapshot_job"
inputType := "Media"
inputMedia := "3945e42d-1823498****"
outputType := "Media"
outputMedia := "3945e42d-1823498****"
submitSnapshotJobRequest := &ice.SubmitSnapshotJobRequest{
Name: &jobName,
Input: &ice.SubmitSnapshotJobRequestInput{
Type: &inputType,
Media: &inputMedia,
},
Output: &ice.SubmitSnapshotJobRequestOutput{
Type: &outputType,
Media: &outputMedia,
},
TemplateConfig: &ice.SubmitSnapshotJobRequestTemplateConfig{
TemplateId: templateId,
},
}
submitSnapshotJobResponse, err := iceClient.SubmitSnapshotJob(submitSnapshotJobRequest)
fmt.Println(submitSnapshotJobResponse, err)
// 查询截图任务详细信息。
jobId := submitSnapshotJobResponse.Body.JobId
getSnapshotJobRequest := &ice.GetSnapshotJobRequest{
JobId: jobId,
}
getSnapshotJobResponse, err := iceClient.GetSnapshotJob(getSnapshotJobRequest)
fmt.Println(getSnapshotJobResponse, err)
// 获取截图任务列表。
pageSize := int32(5)
listSnapshotJobsRequest := &ice.ListSnapshotJobsRequest{
PageSize: &pageSize,
}
listSnapshotJobsResponse, err := iceClient.ListSnapshotJobs(listSnapshotJobsRequest)
fmt.Println(listSnapshotJobsResponse, err)
// 获取截图任务输出图片的访问URL。
getSnapshotUrlsRequest := &ice.GetSnapshotUrlsRequest{
JobId: jobId,
PageSize: &pageSize,
}
getSnapshotUrlsResponse, err := iceClient.GetSnapshotUrls(getSnapshotUrlsRequest)
fmt.Println(getSnapshotUrlsResponse, err)
}