Thumbnail-Job缩略图任务
更新时间:2022-09-22
缩略图是图片、视频经压缩方式处理后的小图。因其小巧,加载速度非常快,故用于快速浏览。缩略图任务可用于为BOS中的多媒体资源创建缩略图。
创建Thumbnail Job
通过pipeline,BOS Key以及其他配置信息为指定媒体生成缩略图,并获取返回的缩略图任务jobId。可以参考如下代码:
Java
1public void createThumbnailJob(MediaClient client, String pipelineName, String sourceKey) {
2 ThumbnailTarget target = new ThumbnailTarget().withFormat("jpg").withSizingPolicy("keep");
3
4 ThumbnailCapture capture =
5 new ThumbnailCapture().withMode("manual")
6 .withStartTimeInSecondDouble(0.0D)
7 .withEndTimeInSecondDouble(5.0D)
8 .withIntervalInSecondDouble(1.0D);
9
10 String jobId =
11 mediaClient.createThumbnailJob(pipelineName, sourceKey, target, capture).getJobId();
12
13}
创建去水印、去黑边的缩略图,可以参考如下代码:
Java
1public void createThumbnailJob(MediaClient client, String pipelineName, String sourceKey, Area delogoArea,
2 Area crop) {
3 ThumbnailTarget target = new ThumbnailTarget().withFormat("gif").withSizingPolicy("keep");
4
5 ThumbnailCapture capture =
6 new ThumbnailCapture().withMode("split").withFrameNumber(10);
7 String jobId =
8 mediaClient.createThumbnailJob(pipelineName, sourceKey, target, capture, delogoArea, crop).getJobId();
9}
查询指定Thumbnail Job
如果需要获取一个已创建的缩略图任务的信息,可以参考如下代码:
Java
1public void getThumbnailJob(MediaClient client, String jobId) {
2 GetThumbnailJobResponse resp = mediaClient.getThumbnailJob(jobId);
3
4 System.out.println(" jobId = " + resp.getJobId());
5 System.out.println(" pipelineName = " + resp.getPipelineName());
6 System.out.println(" jobStatus = " + resp.getJobStatus());
7 System.out.println(" source.key = " + resp.getSource().getKey());
8 System.out.println(" target.keyPrefix = " + resp.getTarget().getKeyPrefix());
9 System.out.println(" target.format = " + resp.getTarget().getFormat());
10 System.out.println(" target.sizingPolicy = " + resp.getTarget().getSizingPolicy());
11 System.out.println(" target.heightInPixel = " + resp.getTarget().getHeightInPixel());
12 System.out.println(" target.widthInPixel = " + resp.getTarget().getWidthInPixel());
13 System.out.println(" target.keys = " + resp.getTarget().getKeys());
14 System.out.println(" capture.mode = " + resp.getCapture().getMode());
15 System.out.println(" capture.startTimeInSecond = " + resp.getCapture().getStartTimeInSecond());
16 System.out.println(" capture.endTimeInSecond = " + resp.getCapture().getEndTimeInSecond());
17 System.out.println(" capture.intervalInSecond = " + resp.getCapture().getIntervalInSecond());
18 System.out.println(" capture.frameNumber = " + resp.getCapture().getFrameNumber());
19}
查询指定队列的Thumbnail Jobs
如果需要获取一个队列里的全部缩略图任务的信息,可以参考如下代码:
Java
1public void listThumbnailJobs(MediaClient client, String pipelineName) {
2 ListThumbnailJobsResponse resp = mediaClient.listThumbnailJobs(pipelineName);
3
4 for (ThumbnailJobStatus job : resp.getThumbnails()) {
5 System.out.println(" jobId = " + job.getJobId());
6 System.out.println(" pipelineName = " + job.getPipelineName());
7 System.out.println(" jobStatus = " + job.getJobStatus());
8 System.out.println(" source.key = " + job.getSource().getKey());
9 System.out.println(" target.keyPrefix = " + job.getTarget().getKeyPrefix());
10 System.out.println(" target.format = " + job.getTarget().getFormat());
11 System.out.println(" target.sizingPolicy = " + job.getTarget().getSizingPolicy());
12 System.out.println(" target.heightInPixel = " + job.getTarget().getHeightInPixel());
13 System.out.println(" target.widthInPixel = " + job.getTarget().getWidthInPixel());
14 System.out.println(" target.keys = " + job.getTarget().getKeys());
15 System.out.println(" capture.mode = " + job.getCapture().getMode());
16 System.out.println(" capture.startTimeInSecond = " + job.getCapture().getStartTimeInSecond());
17 System.out.println(" capture.endTimeInSecond = " + job.getCapture().getEndTimeInSecond());
18 System.out.println(" capture.IntervalInSecond = " + job.getCapture().getIntervalInSecond());
19 System.out.println();
20 }
21
22}