使用阿里雲視頻點播功能demo


今天學習使用阿里雲視頻點播功能,現在做個總結。首先需要在阿里雲的視頻點播服務開通功能,開通后進入控制管理台即可看見各種數據。

根據文檔,要成功上傳要分為3步
1.獲取視頻播放地址
2.獲取視頻播放憑證
3.上傳視頻到阿里雲視頻點播服務
因為上傳視頻可以進行加密,加密之后,使用加密之后地址不能進行視頻播放,在數據庫存儲不存地址,而是存視頻id(可以取得地址和憑證)
大概分為4步:
1.初始化對象2.創建request,response對象3.向request對象中設置值4.調用方法
所以我們首先創建一個初始化的類用於初始化對象
package com.hzh.vodtest;

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;

public class InitObject {
    public static DefaultAcsClient initVodClient(String accessKeyId, String accessKeySecret) throws ClientException {
        String regionId = "cn-shanghai";  // 點播服務接入區域
        DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
        DefaultAcsClient client = new DefaultAcsClient(profile);
        return client;
    }
}

然后編寫方法根據id獲取播放地址

    public static void getPlayUrl() throws ClientException{
        // 1.根據視頻id獲取視頻播放地址

        // 創建初始化對象
        DefaultAcsClient client = InitObject.initVodClient("馬賽克","馬賽克");
        // 創建獲取視頻地址的request對象和response對象
        GetPlayInfoRequest request = new GetPlayInfoRequest();
        GetPlayInfoResponse response = new GetPlayInfoResponse();
        // 向request對象中設置視頻id
        request.setVideoId("dd6dbdd3962640f6baa58391907d00ca");
        // 調用初始化對象里的方法傳遞request,獲取數據
        response = client.getAcsResponse(request);
        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");
    }

再編寫方法用於獲取播放憑證

    public static void getPlayAuth() throws Exception{
        // 2.根據視頻id獲取播放憑證

        // 創建初始化對象
        DefaultAcsClient client = InitObject.initVodClient("馬賽克","馬賽克");
        // 創建獲取視頻憑證的request和response
        GetVideoInfoResponse response = new GetVideoInfoResponse();
        GetVideoInfoRequest request = new GetVideoInfoRequest();
        // 向request中設置視頻id
        request.setVideoId("dd6dbdd3962640f6baa58391907d00ca");
        // 調用初始化對象的方法得到憑證
        response = client.getAcsResponse(request);
    }

  

最后上傳視頻

    public static void main(String[] args) throws ClientException {
        String accessKeyId = "馬賽克";
        String accessKeySecret = "馬賽克";

        String title = "周傑倫-Mojito(高清).mp4";   //上傳之后文件名稱
        String fileName = "D:/6 - What If I Want to Move Faster.mp4";  //本地文件路徑和名稱
        //上傳視頻的方法
        UploadVideoRequest request = new UploadVideoRequest(accessKeyId, accessKeySecret, title, fileName);
        /* 可指定分片上傳時每個分片的大小,默認為2M字節 */
        request.setPartSize(2 * 1024 * 1024L);
        /* 可指定分片上傳時的並發線程數,默認為1,(注:該配置會占用服務器CPU資源,需根據服務器情況指定)*/
        request.setTaskNum(1);

        UploadVideoImpl uploader = new UploadVideoImpl();
        UploadVideoResponse response = uploader.uploadVideo(request);

        if (response.isSuccess()) {
            System.out.print("VideoId=" + response.getVideoId() + "\n");
        } else {
            /* 如果設置回調URL無效,不影響視頻上傳,可以返回VideoId同時會返回錯誤碼。其他情況上傳失敗時,VideoId為空,此時需要根據返回錯誤碼分析具體錯誤原因 */
            System.out.print("VideoId=" + response.getVideoId() + "\n");
            System.out.print("ErrorCode=" + response.getCode() + "\n");
            System.out.print("ErrorMessage=" + response.getMessage() + "\n");
        }

    }

  

ps:馬賽克是自己阿里雲賬戶的accessKeyId和accessKeySecret

ps:因為現在aliyun-sdk-vod-upload還沒有開源,所以需要自己手動下載依賴,在sdk文檔中下載依賴的zip后,在cmd命令行中輸入命令mvn install:install-file -DgroupId=com.aliyun -DartifactId=aliyun-sdk-vod-upload -Dversion=1.4.13 -Dpackaging=jar -Dfile=aliyun-java-vod-upload-1.4.13.jar,成功后可以導入


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM