使用阿里云视频点播功能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