
# 新建截图任务
#### 前提条件
- 已购买对象存储服务，并参考[上传媒体文件](https://support.huaweicloud.com/usermanual-mpc/mpc010002.html)在媒体处理服务同区域（如华北-北京四）上传媒体处理的源视频。
- 已参考[获取云资源授权](https://support.huaweicloud.com/usermanual-mpc/mpc010003.html)，完成媒体处理服务授权。
 
#### 核心代码
1. **创建截图任务请求** 。
   新建截图任务请求包括输入文件、输出文件的路径。具体参数请参考[新建截图任务](https://support.huaweicloud.com/api-mpc/mpc_04_0034.html)接口。
   ```
   //设置截图输入视频地址
   ObsObjInfo input = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("ok.mp4");
   //设置截图输出路径
   ObsObjInfo output = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("output");
   //创建截图请求
   CreateThumbnailsTaskRequest req = new CreateThumbnailsTaskRequest()
           .withBody(new CreateThumbReq().withInput(input).withOutput(output)
                   //设置截图类型,此处理按时间点截图
                   .withThumbnailPara(new ThumbnailPara().withType(ThumbnailPara.TypeEnum.DOTS)
                           //设置截图输出文件名称
                           .withOutputFilename("photo")
                           //设置截图的时间点
                           .withDots(Collections.singletonList(2))
                           //设置截图的宽
                           .withWidth(480)
                           //设置截图的高
                           .withHeight(360)));
   ```
   **说明**：生成的截图文件按截图时间戳命名，从首帧开始截取，中间按时间间隔截取，最后末帧截取一张。如视频文件20s，截图间隔为11s，则生成的截图文件为0.jpg，11.jpg，20.jpg。
   
2. **发送创建截图任务请求并显示返回消息** 。
   ```
   CreateThumbnailsTaskResponse rsp = initMpcClient().createThumbnailsTask(req);
   System.out.println("CreateThumbnailsTaskResponse=" + JsonUtils.toJSON(rsp));
   ```
   
 
#### 示例代码
```
package SdkTestCase.thumbnail;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ClientRequestException;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.http.HttpConfig;
import com.huaweicloud.sdk.core.utils.JsonUtils;
import com.huaweicloud.sdk.mpc.v1.MpcClient;
import com.huaweicloud.sdk.mpc.v1.model.CreateThumbReq;
import com.huaweicloud.sdk.mpc.v1.model.CreateThumbnailsTaskRequest;
import com.huaweicloud.sdk.mpc.v1.model.CreateThumbnailsTaskResponse;
import com.huaweicloud.sdk.mpc.v1.model.ObsObjInfo;
import com.huaweicloud.sdk.mpc.v1.model.ThumbnailPara;
import com.obs.services.internal.ServiceException;
import java.util.Collections;
public class TestThumbnail {
    /**
     * 初始化 MpcClient
     * @return
     */
    public static MpcClient initMpcClient() {
        HttpConfig httpConfig = HttpConfig.getDefaultHttpConfig().withIgnoreSSLVerification(true).withTimeout(3);
        //http代理设置，请根据实际情况设置
        //httpConfig.withProxyHost("xxxxxx").withProxyPort(xxxxxx).withProxyUsername("xxxxxx").
        //        withProxyPassword("xxxxxx");
        //根据实际填写ak,sk，在控制台账号名下“我的凭证 > 访问密钥”上创建和查看您的AK/SK
        
        String ak = System.getenv("SDK_AK");
        String sk = System.getenv("SDK_SK");
        //根据实际填写项目ID，在控制台账号名下“我的凭证 > API凭证”下查看您的项目ID
        String projectId = System.getenv("PROJECT_ID");
        //根据实际填写所需endpoint，这里以“region01”为例
        String endpoint = "https://mpc.region01.myhuaweicloud.com";
        BasicCredentials auth = new BasicCredentials().withAk(ak).withSk(sk).withProjectId(projectId);
        return MpcClient.newBuilder()
                .withHttpConfig(httpConfig)
                .withCredential(auth)
                .withEndpoint(endpoint)
                .build();
    }
    /**
     * 创建截图任务
     * @param args
     */
    public static void main(String[] args) {
        //设置截图输入视频地址
        ObsObjInfo input = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("ok.mp4");
        //设置截图输出路径
        ObsObjInfo output = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("output");
        //创建截图请求
        CreateThumbnailsTaskRequest req = new CreateThumbnailsTaskRequest()
                .withBody(new CreateThumbReq().withInput(input).withOutput(output)
                        //设置截图类型,此处理按时间点截图
                        .withThumbnailPara(new ThumbnailPara().withType(ThumbnailPara.TypeEnum.DOTS)
                                //设置截图文件名称
                                .withOutputFilename("photo")
                                //设置截图的时间点
                                .withDots(Collections.singletonList(2))
                                //设置截图的宽
                                .withWidth(480)
                                //设置截图的高
                                .withHeight(360)));
        //发送截图请求
        try {
            CreateThumbnailsTaskResponse rsp = initMpcClient().createThumbnailsTask(req);
            System.out.println("CreateThumbnailsTaskResponse=" + JsonUtils.toJSON(rsp));
        } catch (ClientRequestException | ConnectionException | RequestTimeoutException | ServiceException e) {
            System.out.println(e);
        }
    }
}
```
