package com.ruoyi.web.controller.test;

import com.aliyun.ice20201109.Client;

import com.aliyun.ice20201109.models.*;

import com.aliyun.teaopenapi.models.Config;

/**

* @Classname MediaProducingJobSample

* @Description videoSlip

* @Date 2023/11/20 11:10

* @Created by CaoJun

*/

public class MediaProducingJobSample {

public static void main(String[] args) throws Exception {

// 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。

// 本示例以将AccessKey ID和 AccessKey Secret保存在环境变量为例说明。配置方法请参见:https://help.aliyun.com/document_detail/378657.html

com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();

Config config = new Config();

config.setCredential(credentialClient);

// 如需硬编码AccessKey ID和AccessKey Secret,代码如下,但强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。

// config.accessKeyId = ;

// config.accessKeySecret = ;

config.endpoint = "ice.cn-hangzhou.aliyuncs.com";

Client client = new Client(config);

// 通过Timeline创建合成任务

SubmitMediaProducingJobRequest submitMediaProducingJobRequest1 = new SubmitMediaProducingJobRequest();

submitMediaProducingJobRequest1.setTimeline("{\n" +

" \"VideoTracks\": [\n" +

" {\n" +

" \"VideoTrackClips\": [\n" +

" {\n" +

" \"MediaURL\": \"https://fojiajia.oss-cn-hangzhou.aliyuncs.com/spjjcs/2023-11-08-16-24-55_2023-11-08-16-40-18.mp4\",\n" +

" \"In\": 1,\n" +

" \"Out\": 4,\n" +

" \"Effects\": [\n" +

" {\n" +

" \"Type\": \"Transition\",\n" +

" \"SubType\": \"bowTieHorizontal\",\n" +

" \"Duration\": 1\n" +

" },\n" +

" {\n" +

" \"Type\": \"Volume\",\n" +

" \"Gain\": \"0\"\n" +

" }\n" +

" ]\n" +

" },\n" +

" {\n" +

" \"MediaURL\": \"https://fojiajia.oss-cn-hangzhou.aliyuncs.com/spjjcs/2023-11-08-16-24-55_2023-11-08-16-40-18.mp4\",\n" +

" \"In\": 40,\n" +

" \"Out\": 50,\n" +

" \"Effects\": [\n" +

" {\n" +

" \"Type\": \"Transition\",\n" +

" \"SubType\": \"crosswarp\",\n" +

" \"Duration\": 1\n" +

" }\n" +

" ]\n" +

" \n" +

" },\n" +

" {\n" +

" \"MediaURL\": \"https://fojiajia.oss-cn-hangzhou.aliyuncs.com/spjjcs/2023-11-08-16-24-55_2023-11-08-16-40-18.mp4\",\n" +

" \"In\": 90,\n" +

" \"Out\": 100\n" +

" \n" +

" \n" +

" }\n" +

" ]\n" +

" }\n" +

" ],\n" +

" \"AudioTracks\": [\n" +

" {\n" +

" \"AudioTrackClips\": [\n" +

" {\n" +

" \"MediaURL\": \"https://fojiajia.oss-cn-hangzhou.aliyuncs.com/spjjcs/%E7%BE%A4%E6%98%9F%20-%20%E5%8D%81%E9%80%81%E7%BA%A2%E5%86%9B.mp3\",\n" +

" \"TimelineIn\":0\n" +

" }\n" +

" ]\n" +

" }\n" +

" ]\n" +

"}");

submitMediaProducingJobRequest1.setOutputMediaConfig("{\"MediaURL\":\"https://fojiajia.oss-cn-hangzhou.aliyuncs.com/example.mp4\"}");

submitMediaProducingJobRequest1.setProjectMetadata("{\"coverURL\":\"http://test.sample.com/mediaid.jpg\",\"description\":\"description\",\"title\":\"title\",\"tags\":\"Tag1,Tag2,Test\"}");

SubmitMediaProducingJobResponse submitMediaProducingJobResponse1 = client.submitMediaProducingJob(submitMediaProducingJobRequest1);

System.out.println("requestId : " + submitMediaProducingJobResponse1.getBody().getRequestId());

System.out.println("jobId : " + submitMediaProducingJobResponse1.getBody().getJobId());

System.out.println("projectId : " + submitMediaProducingJobResponse1.getBody().getProjectId());

// // 通过TemplateId创建合成任务

// SubmitMediaProducingJobRequest submitMediaProducingJobRequest2 = new SubmitMediaProducingJobRequest();

// submitMediaProducingJobRequest2.setTemplateId("IceSys_VideoMerge");

// submitMediaProducingJobRequest2.setClipsParam("{\"VideoArray\":[\"****05512043f49f697f7425****\",\"****2788e810116a45109f2e****\",\"****67f44f4964e6c998dee8****\",]}");

// submitMediaProducingJobRequest2.setOutputMediaConfig("{\"MediaURL\":\"http://example-bucket.oss-object.com/example.mp4\"}");

// SubmitMediaProducingJobResponse submitMediaProducingJobResponse2 = client.submitMediaProducingJob(submitMediaProducingJobRequest2);

// System.out.println("requestId : " + submitMediaProducingJobResponse2.getBody().getRequestId());

// System.out.println("jobId : " + submitMediaProducingJobResponse2.getBody().getJobId());

// System.out.println("projectId : " + submitMediaProducingJobResponse2.getBody().getProjectId());

//

// // 通过ProjectId创建合成任务

// SubmitMediaProducingJobRequest submitMediaProducingJobRequest3 = new SubmitMediaProducingJobRequest();

// submitMediaProducingJobRequest3.setProjectId("****67f44f4964e6c998dee8****");

// submitMediaProducingJobRequest3.setOutputMediaConfig("{\"MediaURL\":\"http://example-bucket.oss-object.com/example.mp4\"}");

// SubmitMediaProducingJobResponse submitMediaProducingJobResponse3 = client.submitMediaProducingJob(submitMediaProducingJobRequest3);

// System.out.println("requestId : " + submitMediaProducingJobResponse3.getBody().getRequestId());

// System.out.println("jobId : " + submitMediaProducingJobResponse3.getBody().getJobId());

// System.out.println("projectId : " + submitMediaProducingJobResponse3.getBody().getProjectId());

// 获取单个合成任务

GetMediaProducingJobRequest request = new GetMediaProducingJobRequest();

request.setJobId(submitMediaProducingJobResponse1.getBody().getJobId());

GetMediaProducingJobResponse reqponse = client.getMediaProducingJob(request);

System.out.println("jobId : " + reqponse.getBody().getMediaProducingJob().getJobId());

System.out.println("status : " + reqponse.getBody().getMediaProducingJob().getStatus());

//

// // 通过直播流区间提交合成

// SubmitLiveEditingJobRequest submitLiveEditingJobRequest = new SubmitLiveEditingJobRequest();

// submitLiveEditingJobRequest.setClips("{\"StartTime\": \" 2021-06-21T08:01:00Z\", \"EndTime\": \" 2021-06-21T08:03:00Z\"}");

// submitLiveEditingJobRequest.setProjectId("****fddd7748b58bf1d47e95****");

// submitLiveEditingJobRequest.setLiveStreamConfig("{ \"AppName\": \"app\", \"DomainName\": \"domain.com\", \"StreamName\": \"stream\" }");

// submitLiveEditingJobRequest.setOutputMediaConfig("{ \"MediaURL\": \"https://example-bucket.oss-cn-shanghai.aliyuncs.com/testfile.mp4\" }");

// submitLiveEditingJobRequest.setMediaProduceConfig("{ \"Mode\": \"AccurateFast\"}");

// submitLiveEditingJobRequest.setUserData("{\"key\": \"value\"}");

// submitLiveEditingJobRequest.setOutputMediaTarget("oss-object");

// SubmitLiveEditingJobResponse submitLiveEditingJobResponse = client.submitLiveEditingJob(submitLiveEditingJobRequest);

// System.out.println("jobId:"+submitLiveEditingJobResponse.getBody().getJobId());

// System.out.println("requestid:"+submitLiveEditingJobResponse.getBody().getRequestId());

//

// // 通过直播JobId获取单个信息

// GetLiveEditingJobRequest getLiveEditingJobRequest = new GetLiveEditingJobRequest();

// getLiveEditingJobRequest.setJobId("****d80e4e4044975745c14b****");

// GetLiveEditingJobResponse getLiveEditingJobResponse = client.getLiveEditingJob(getLiveEditingJobRequest);

// System.out.println("state:"+getLiveEditingJobResponse.getBody().getLiveEditingJob().getStatus());

}

}

package com.ruoyi.web.controller.test;

/**

* @Classname Sample

* @Description Sample

* @Date 2023/12/1 10:56

* @Created by CaoJun

*/

import com.alibaba.fastjson2.JSONObject;

import com.aliyun.teautil.Common;

import java.util.Map;

public class Sample {

/**

* 使用AK&SK初始化账号Client

* @param accessKeyId

* @param accessKeySecret

* @return Client

* @throws Exception

*/

public static com.aliyun.teaopenapi.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {

com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()

// 必填,您的 AccessKey ID

.setAccessKeyId(accessKeyId)

// 必填,您的 AccessKey Secret

.setAccessKeySecret(accessKeySecret);

// Endpoint 请参考 https://api.aliyun.com/product/ICE

config.endpoint = "ice.cn-hangzhou.aliyuncs.com";

return new com.aliyun.teaopenapi.Client(config);

}

/**

* 使用STS鉴权方式初始化账号Client,推荐此方式。

* @param accessKeyId

* @param accessKeySecret

* @param securityToken

* @return Client

* @throws Exception

*/

public static com.aliyun.teaopenapi.Client createClientWithSTS(String accessKeyId, String accessKeySecret, String securityToken) throws Exception {

com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()

// 必填,您的 AccessKey ID

.setAccessKeyId(accessKeyId)

// 必填,您的 AccessKey Secret

.setAccessKeySecret(accessKeySecret)

// 必填,您的 Security Token

.setSecurityToken(securityToken)

// 必填,表明使用 STS 方式

.setType("sts");

// Endpoint 请参考 https://api.aliyun.com/product/ICE

config.endpoint = "ice.cn-hangzhou.aliyuncs.com";

return new com.aliyun.teaopenapi.Client(config);

}

/**

* API 相关

* @return OpenApi.Params

*/

public static com.aliyun.teaopenapi.models.Params createApiInfo() {

com.aliyun.teaopenapi.models.Params params = new com.aliyun.teaopenapi.models.Params()

// 接口名称

.setAction("GetMediaProducingJob")

// 接口版本

.setVersion("2020-11-09")

// 接口协议

.setProtocol("HTTPS")

// 接口 HTTP 方法

.setMethod("GET")

.setAuthType("AK")

.setStyle("RPC")

// 接口 PATH

.setPathname("/")

// 接口请求体内容格式

.setReqBodyType("json")

// 接口响应体内容格式

.setBodyType("json");

return params;

}

public static void main(String[] args_) throws Exception {

java.util.List args = java.util.Arrays.asList(args_);

// 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 和 ALIBABA_CLOUD_ACCESS_KEY_SECRET。

// 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html

com.aliyun.teaopenapi.Client client = Sample.createClient("LTAI5tLESUxMFjbRHtDpceq","8irYrMP70QpwCZwjsA7acCQYI0bFQ");

com.aliyun.teaopenapi.models.Params params = Sample.createApiInfo();

// query params

java.util.Map queries = new java.util.HashMap<>();

queries.put("JobId", "ee936d3da1bd48df9fa5a79456c45d07");

// runtime options

com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions()

.setIgnoreSSL(true)

.setAutoretry(true)

.setMaxAttempts(3);

com.aliyun.teaopenapi.models.OpenApiRequest request = new com.aliyun.teaopenapi.models.OpenApiRequest()

.setQuery(com.aliyun.openapiutil.Client.query(queries));

// 返回值为 Map 类型,可从 Map 中获得三类数据:响应体 body、响应头 headers、HTTP 返回的状态码 statusCode。

java.util.Map resp = (Map) client.callApi(params, request, runtime);

Object o = resp.get("body");

System.out.println(o);

Object o1 = resp.get("statusCode");

System.out.println(o1);

System.out.println(resp.get("headers"));

}

}

2025-11-03 18:56:31