阿里云视频点播服务Vod工具类——实现视频上传、删除、播放

阿里云视频点播服务Vod工具类——实现视频上传、删除、播放

  • 阿里云视频点播服务Vod工具类
    • maven依赖
    • 工具类实现
    • 工具类的测试
      • 获取视频
        • 1. 获取单个视频的播放地址和ID:
        • 2. 获取所有视频的播放地址和ID:
      • 上传视频
      • 删除视频

阿里云视频点播服务Vod工具类

maven依赖

如果报错或者是下载不下来,这里需要你把maven的镜像调成aliyun的才行

com.aliyunaliyun-java-sdk-core4.4.4

com.aliyunaliyun-java-sdk-vod1.0.9

工具类实现

需要注意的是,你需要将ACCESS_KEY_ID、ACCESS_KEY_SECRET替换成你自己的阿里云账号的AccessKey信息,将REGION_ID替换成你自己的VOD服务所在的区域。同时,视频文件的路径需要根据你自己的实际情况来修改。

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.*;
import java.util.ArrayList;
import java.util.List;
public class VodUtil {// 阿里云账号AccessKey信息private static final String ACCESS_KEY_ID = "your_access_key_id";private static final String ACCESS_KEY_SECRET = "your_access_key_secret";// VOD客户端信息private static final String REGION_ID = "cn-shanghai";private static final String ENDPOINT = "https://vod." + REGION_ID + ".aliyuncs.com";// 默认视频封面private static final String DEFAULT_COVER_URL = "http://vod-image-sample.oss-cn-hangzhou.aliyuncs.com/example.jpg";// 初始化VOD客户端public static DefaultAcsClient init() {DefaultProfile profile = DefaultProfile.getProfile(REGION_ID, ACCESS_KEY_ID, ACCESS_KEY_SECRET);DefaultAcsClient client = new DefaultAcsClient(profile);client.setEndpoint(ENDPOINT);return client;}// 创建上传视频请求public static CreateUploadVideoResponse createUploadVideo(DefaultAcsClient client, String title, String fileName) throws ClientException {CreateUploadVideoRequest request = new CreateUploadVideoRequest();request.setTitle(title);request.setFileName(fileName);return client.getAcsResponse(request);}// 上传视频文件public static UploadVideoResponse uploadVideo(DefaultAcsClient client, String uploadAddress, String uploadAuth, String filePath, String fileName) throws ClientException {UploadVideoRequest request = new UploadVideoRequest(uploadAddress, uploadAuth, filePath, fileName);return client.getAcsResponse(request);}// 获取视频播放地址public static String getPlayUrl(DefaultAcsClient client, String videoId) throws ClientException {GetPlayInfoRequest request = new GetPlayInfoRequest();request.setVideoId(videoId);GetPlayInfoResponse response = client.getAcsResponse(request);List playInfoList = response.getPlayInfoList();if (playInfoList != null && !playInfoList.isEmpty()) {return playInfoList.get(0).getPlayURL();}return null;}// 获取视频列表public static List getVideoList(DefaultAcsClient client) throws ClientException {List videoIds = new ArrayList<>();SearchMediaRequest request = new SearchMediaRequest();request.setPageSize(100);SearchMediaResponse response = client.getAcsResponse(request);List mediaList = response.getMediaList();for (SearchMediaResponse.Media media : mediaList) {videoIds.add(media.getVideo().getVideoId());}return videoIds;}// 删除视频public static void deleteVideo(DefaultAcsClient client, String videoId) throws ClientException {DeleteVideoRequest request = new DeleteVideoRequest();request.setVideoIds(videoId);client.getAcsResponse(request);}// 上传视频并返回视频ID和播放地址public static VideoInfo uploadAndPlay(String title, String filePath) throws ClientException {DefaultAcsClient client = init();// 创建上传视频请求CreateUploadVideoResponse uploadResponse = createUploadVideo(client, title, filePath);String videoId = uploadResponse.getVideoId();String uploadAddress = uploadResponse.getUploadAddress();String uploadAuth = uploadResponse.getUploadAuth();// 上传视频文件UploadVideoResponse response = uploadVideo(client, uploadAddress, uploadAuth, filePath, filePath);// 获取视频播放地址String playUrl = getPlayUrl(client, videoId);// 设置视频封面SetVideoCoverRequest coverRequest = new SetVideoCoverRequest();coverRequest.setVideoId(videoId);coverRequest.setCoverURL(DEFAULT_COVER_URL);client.getAcsResponse(coverRequest);// 封装视频信息并返回VideoInfo videoInfo = new VideoInfo();videoInfo.setVideoId(videoId);videoInfo.setPlayUrl(playUrl);return videoInfo;}// 获取所有视频的播放地址和IDpublic static List getAllVideos() throws ClientException {DefaultAcsClient client = init();List videoIds = getVideoList(client);List videoInfoList = new ArrayList<>();for (String videoId : videoIds) {String playUrl = getPlayUrl(client, videoId);VideoInfo videoInfo = new VideoInfo();videoInfo.setVideoId(videoId);videoInfo.setPlayUrl(playUrl);videoInfoList.add(videoInfo);}return videoInfoList;}// 删除视频public static void deleteVideo(String videoId) throws ClientException {DefaultAcsClient client = init();deleteVideo(client, videoId);}
}

工具类的测试

获取视频

1. 获取单个视频的播放地址和ID:

VideoInfo videoInfo = VodUtil.getVideo("video_id");
System.out.println("VideoId: " + videoInfo.getVideoId());
System.out.println("PlayUrl: " + videoInfo.getPlayUrl());

2. 获取所有视频的播放地址和ID:

List videoInfoList = VodUtil.getAllVideos();
for (VideoInfo videoInfo : videoInfoList) {System.out.println("VideoId: " + videoInfo.getVideoId());System.out.println("PlayUrl: " + videoInfo.getPlayUrl());
}

上传视频

VideoInfo videoInfo = VodUtil.uploadAndPlay("video_title", "video_file_path");
System.out.println("VideoId: " + videoInfo.getVideoId());
System.out.println("PlayUrl: " + videoInfo.getPlayUrl());

删除视频

VodUtil.deleteVideo("video_id");


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部