一 準備工作
1 設置不轉碼
測試之前設置默認“不轉碼”,以節省開發成本。
2 找到子賬戶的AccessKey ID
3 給子賬戶添加授權
AliyunVODFullAccess
4 閱讀文檔
服務端API
API調用示例參考:https://help.aliyun.com/document_detail/44435.html?spm=a2c4g.11186623.6.708.2c643d44SY21Hb
服務端SDK
SDK將API進行了進一步的封裝,使用起來更簡單方便。
二 創建和初始化項目
1 創建maven項目
Group:com.atguigu
Artifact:aliyun_vod
2 添加Maven依賴
<dependencies>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.3.3</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-vod</artifactId>
<version>2.15.5</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
3 創建測試類並初始化
參考文檔:https://help.aliyun.com/document_detail/61062.html
/**
* client初始化
*
* @param accessKeyId
* @param accessKeySecret
* @return DefaultAcsClient 客戶端
*/
public static DefaultAcsClient initVodClient(String accessKeyId, String accessKeySecret) {
String regionId = "cn-shanghai"; // 點播服務接入區域
DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
DefaultAcsClient client = new DefaultAcsClient(profile);
return client;
}
三 創建測試用例
1 獲取視頻播放地址
參考文檔:https://help.aliyun.com/document_detail/61064.html
/**
* 獲取播放地址
*/
@Test
public void testGetPlayInfo() {
// 初始化客戶端
DefaultAcsClient client = initVodClient(
"<您的AccessKeyId>",
"<您的AccessKeySecret>");
// 創建請求對象
GetPlayInfoResponse response = new GetPlayInfoResponse();
try {
// 發送請求得到響應
response = getPlayInfo(client);
List<GetPlayInfoResponse.PlayInfo> playInfoList = response.getPlayInfoList();
// 播放地址
for (GetPlayInfoResponse.PlayInfo playInfo : playInfoList) {
System.out.print("PlayInfo.PlayURL = " + playInfo.getPlayURL() + "\n");
}
// Base信息
System.out.print("VideoBase.Title = " + response.getVideoBase().getTitle() + "\n");
} catch (Exception e) {
System.out.print("ErrorMessage = " + e.getLocalizedMessage());
}
System.out.print("RequestId = " + response.getRequestId() + "\n");
}
/**
* 功能描述:獲取播放地址函數
*
* @author cakin
* @date 2020/12/12
* @param client 客戶端
* @return GetPlayInfoResponse 播放信息響應
*/
public static GetPlayInfoResponse getPlayInfo(DefaultAcsClient client) throws Exception {
GetPlayInfoRequest request = new GetPlayInfoRequest(); // 創建請求對象
request.setResultType("Multiple");
request.setVideoId("43d6225f1e844bdcadf6f042580614a6"); // 設置請求參數
return client.getAcsResponse(request); // 發送請求得到響應
}
測試結果:
PlayInfo.PlayURL = http://video1.guli.shop/e9e25fa83f61418fb71767d884c41742/a67a1c2045064b13af09ffc3a45aea31-fd9af78a2f43cf04e6dbf40def56bc63-fd-encrypt-stream.m3u8
PlayInfo.PlayURL = http://video1.guli.shop/e9e25fa83f61418fb71767d884c41742/a67a1c2045064b13af09ffc3a45aea31-865fef9e41d2591d320940ae30a2bccc-ld-encrypt-stream.m3u8
VideoBase.Title = 第八章
RequestId = A83AA626-BCBB-4A11-8C4B-CBA8D376E102
2 獲取視頻播放憑證
參考文檔:https://help.aliyun.com/document_detail/61064.html#h2--div-id-getvideoplayauth-div-2
加密視頻必須使用此方式播放
/**
* 獲取播放憑證
*/
@Test
public void testGetVideoPlayAuth() {
DefaultAcsClient client = initVodClient(
"LTAI4G5BTyMGDvWFjcziEGPU",
"XlKSpUcIILsdjYWuZXrRRwVbX4XlQ5");
GetVideoPlayAuthResponse response = new GetVideoPlayAuthResponse();
try {
response = getVideoPlayAuth(client);
//播放憑證
System.out.print("PlayAuth = " + response.getPlayAuth() + "\n");
//VideoMeta信息
System.out.print("VideoMeta.Title = " + response.getVideoMeta().getTitle() + "\n");
} catch (Exception e) {
System.out.print("ErrorMessage = " + e.getLocalizedMessage());
}
System.out.print("RequestId = " + response.getRequestId() + "\n");
}
/**
* 功能描述:獲取播放憑證函數
*
* @param client 客戶端
* @return GetVideoPlayAuthResponse 視頻播放授權信息
* @author cakin
* @date 2020/12/12
* @description:
*/
public static GetVideoPlayAuthResponse getVideoPlayAuth(DefaultAcsClient client) throws Exception {
GetVideoPlayAuthRequest request = new GetVideoPlayAuthRequest(); // 創建請求對象
request.setVideoId("e9e25fa83f61418fb71767d884c41742"); // 設置請求參數
return client.getAcsResponse(request); // 發送請求得到響應
}
測試結果
PlayAuth = eyJTZWN1cml0eV54va2VuIjoiQ0FJU2h3TjFxNkZ0NUIyeWZTaklyNWJ6Yzg3TWlleDc5Wml1Ung2RDBuUWJRdXA3blovdXFqejJJSDlJZEhWb0FPOGZ2dlUwbTJ0WTdQc1psck1xRnNVY0d4eVZNWklvdjhVR3JWci9KcExGc3QySjZyOEpqc1ViOTlCTGhsaXBzdlhKYXNEVkVmbDJFNVhFTWlJUi8wMGU2TC8rY2lyWXBUWEhWYlNDbFo5Z2FQa09Rd0M4ZGtBb0xkeEtKd3hrMnQxNFVtWFdPYVNDUHdMU2htUEJMVXhtdldnR2wyUnp1NHV5M3ZPZDVoZlpwMXI4eE80YXhlTDBQb1AyVjgxbExacGxlc3FwM0k0U2M3YmFnaFpVNGdscjhxbHg3c3BCNVN5Vmt0eVdHVWhKL3phTElvaXQ3TnBqZmlCMGVvUUFQb3BGcC9YNmp2QWF3UExVbTliWXhncGhCOFIrWGo3RFpZYXV4N0d6ZW9XVE84MCthS3p3TmxuVXo5bUxMZU9WaVE0L1ptOEJQdzQ0RUxoSWFGMElVRTF5R21DQ2QvWDRvZ3VSUDF6N0VwTG9pdjltamNCSHFIeno1c2VQS2xTMVJMR1U3RDBWSUpkVWJUbHphRUpHZ1RTNExmWldJbGNUS0FNOVd1MlBNYXgzYlFGRHI1M3ZzVGJiWHpaYjBtcHR1UG56ZDE0Sk9CS2cxMUtVR29BQlBaZTlNK20yUUE1ejkrNXQ4MGtWOHRXOE5pTXE4OHYyVGZOcE8xcHE1YXh5UGcvQVVLWTczWVRub2FWWkJYeFo1VmliYit3VmdTMHRWcnhsL0kzT04wTm9laGNaVHhYcU9SY1o4M0xyc0R5N2RwZi9sUzJQMFJhekRHQkQ3U09NZXQ5SUVndVQzaEF4cllGb1J1YWJaSHVEWXloVU9hWStSN0cxaS9jb3JlST0iLCJBdXRoSW5mbyI6IntcIkNJXCI6XCJud2Uvek5HeFFJa2NZaEFSclk3MnZHRlEwVE1VUy9KMSsreUFLZzByYlZVdGJPQlpkMWJYUUNVYXQ0eFZWbTFtazkzQ0ZMTEI4emxMVDF0cWI4UFJUUnFkdVJncVc3TUd6clFXbzR0Y2Jhcz1cIixcIkNhbGxlclwiOlwicWNoalNVSnE5N3VjNytJU0F3eHN3Uml5NnVNd3R6RVJMWHgxQVRQTVA0UT1cIixcIkV4cGlyZVRpbWVcIjpcIjIwMjAtMTItMTJUMDc6MzM6NDBaXCIsXCJNZWRpYUlkXCI6XCJlOWUyNWZhODNmNjE0MThmYjcxNzY3ZDg4NGM0MTc0MlwiLFwiUGxheURvbWFpblwiOlwidmlkZW8xLmd1bGkuc2hvcFwiLFwiU2lnbmF0dXJlXCI6XCJVNGhBN1ZEQk5WaEtDYUVHVHNWYWNRc0tmRDg9XCJ9IiwiVmlkZW9NZXRhIjp7IlN0YXR1cyI6Ik5vcm1hbCIsIlZpZGVvSWQiOiJlOWUyNWZhODNmNjE0MThmYjcxNzY3ZDg4NGM0MTc0MiIsIlRpdGxlIjoi56ys5YWr56ugIiwiQ292ZXJVUkwiOiJodHRwOi8vdmlkZW8xLmd1bGkuc2hvcC9lOWUyNWZhODNmNjE0MThmYjcxNzY3ZDg4NGM0MTc0Mi9zbmFwc2hvdHMvZmJiYTQ5OGQ0MTFiNDYxZGJlNDM0NGI2OGI1OTY3MTEtMDAwMDIuanBnIiwiRHVyYXRpb24iOjI0LjA1NX0sIkFjY2Vzc0tleUlkIjoiU1RTLk5VRjh0eGQzWkJaRUU4MjZ0Tk5lV3JaRUgiLCJQbGF5RG9tYWluIjoidmlkZW8xLmd1bGkuc2hvcCIsIkFjY2Vzc0tleVNlY3JldCI6IkgzYURrMm1zOENrdjY1MzJDWGlabWpVdnYxQ3dMd0VhdWU5bWJHRmk2bjl5IiwiUmVnaW9uIjoiY24tc2hhbmdoYWkiLCJDdXN0b21lcklkIjoxNTIxNjg5NDEwOTk5NDE2fQ==
VideoMeta.Title = 第八章
RequestId = 7408DCE4-FC97-4C24-87EF-ACD97E50273B