1. 程式人生 > 實用技巧 >使用阿里雲視訊點播功能demo

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

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

阿里雲學習文件:https://help.aliyun.com/document_detail/51512.html?spm=5176.8413026.J_2349663800.5.188011cfl3ksIV 根據文件,要成功上傳要分為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,成功後可以匯入