通過閱讀本文,您可以瞭解通過服務端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://www.alibabacloud.com/help/zh/sdk/developer-reference/v2-manage-node-js-access-credentials。
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);
});