通过阅读本文,您可以了解通过服务端SDK调用OpenAPI发起并查询智能媒体服务截图任务的示例代码。

使用说明

发起截图任务前,需要先创建截图模板。通过TemplateId(截图模板ID)发起截图任务,发起截图任务时,支持对截图模板参数进行覆盖重置,截图任务处理成功后,可以根据返回的JobId(任务ID)查询该截图任务的详细信息、截图任务列表及截图的访问URL。

示例代码

您可以通过阿里云OpenAPI开发者门户在线调试。

import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import Credential, { Config } from '@alicloud/credentials';
const Client = require('@alicloud/ice20201109').default;
const { SubmitSnapshotJobRequestOutput, SubmitSnapshotJobRequestInput, SubmitSnapshotJobRequestTemplateConfig } = require('@alicloud/ice20201109');

// 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
// 本示例以将AccessKey ID和 AccessKey Secret保存在环境变量为例说明。配置方法请参见:https://help.aliyun.com/document_detail/378664.html。

const cred = new Credential();
const iceClient = new Client(new $OpenApi.Config({
  credential: cred,
  endpoint: 'ice.cn-shanghai.aliyuncs.com'
}));

// 如需硬编码AccessKey ID和AccessKey Secret,代码如下,但强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
// const iceClient = new Client(new $OpenApi.Config({
//   accessKeyId: '<yourAccessKeyId>',
//   accessKeySecret: '<yourAccessKeySecret>',
//   endpoint: 'ice.cn-shanghai.aliyuncs.com'
// }));

// 创建自定义截图模版。
var snapshotTemplateconfig = "{\"Type\":\"Normal\",\"FrameType\":\"normal\",\"Time\":0,\"Count\":10}";
iceClient.createCustomTemplate({
    name: "snapshotTestTemplate",
    templateConfig: snapshotTemplateconfig,
    type: 2
}).then(function (data) {
    console.log(data.body);
}, function (err) {
    console.log('Error:' + err);
});

// 提交截图任务。
iceClient.submitSnapshotJob({
    input: new SubmitSnapshotJobRequestInput({
        media: "6e9082b0507a71ed992190959850****",
        type: "Media"
    }),
    output: new SubmitSnapshotJobRequestOutput({
        media: "6e9082b0507a71ed992190959850****",
        type: "Media"
    }),
    templateConfig: new SubmitSnapshotJobRequestTemplateConfig({
        templateId: "8cf4c16c383f4a1f85b89c222a8f****"
    })
}).then(function (data) {
  console.log(data.body);
}, function (err) {
  console.log('Error:' + err);
});

// 查询截图任务。
var jobId = "c899056c1e26442cb6c0b7676875****";
iceClient.getSnapshotJob({
    jobId: jobId
}).then(function (data) {
    console.log(data.body);
}, function (err) {
    console.log('Error:' + err);
});


// 获取截图任务列表。
iceClient.listSnapshotJobs({
    pageSize: 5
}).then(function (data) {
    console.log(data.body);
}, function (err) {
    console.log('Error:' + err);
});

// 获取截图任务输出图片的访问URL。
var jobId = "c899056c1e26442cb6c0b7676875****";
iceClient.getSnapshotUrls({
    jobId: jobId,
    pageSize: 5
}).then(function (data) {
    console.log(data.body);
}, function (err) {
    console.log('Error:' + err);
});

相关接口