阿里云视频点播(sdk)的使用姿势


视频点播(SDK)

阿里云文档地址:

https://help.aliyun.com/document_detail/57756.html?spm=a2c4g.11186623.6.1037.2bd84e28xsVzg2

1、引入依赖:

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.5.1</version>
  </dependency>
  <dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-vod</artifactId>
    <version>2.15.11</version>
  </dependency>
  <dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-sdk-vod-upload</artifactId>
    <version>1.4.13</version>
  </dependency>
  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.62</version>
  </dependency>

2、初始化对象:

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;
    }
}

3、获取视频相关信息:

3.1、根据视频id获取视频的播放地址:

注:加密后的视频不能直接通过地址访问

public class TestVod {
    public static void main(String[] args) throws ClientException {
//  1、根据是视频id获取视频的播放地址
        //(1)创建初始化对象 参数:阿里云oss的上传密钥(此处替换成你自己的)
        DefaultAcsClient client = InitObject.initVodClient("###", "***");

        // (2) 创建获取视频地址request 和response
        GetPlayInfoRequest request = new GetPlayInfoRequest();
        GetPlayInfoResponse response = new GetPlayInfoResponse();

        // (3) 向request对象里面设置视频id
        request.setVideoId("6e19e54e5f2341f487364a2aeae0f36e");

        // (4) 调用初始化对象里面的方法传递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");
    }
}

3.2、根据视频id获取视频的播放凭证:

//  2、根据视频id获取视频播放凭证
        //(1)创建初始化对象 参数:阿里云oss的上传密钥
        DefaultAcsClient client = InitObject.initVodClient("###", "***");

        // (2) 创建获取视频凭证request 和response
        GetVideoPlayAuthRequest request = new GetVideoPlayAuthRequest();
        GetVideoPlayAuthResponse response = new GetVideoPlayAuthResponse();

        // (3) 向request对象里面设置视频id
        request.setVideoId("6e19e54e5f2341f487364a2aeae0f36e");

        // (4) 调用初始化对象里面的方法传递request,获取数据
        response = client.getAcsResponse(request);

        System.out.println("视频播放凭证为:"+response.getPlayAuth());

4、视频上传

4.1、本地视频上传

String accessKeyId = "***";
       String accessKeySecret = "###";

       String title = "6 - What If I Want to Move Faster - upload by sdk";   //上传之后文件名称
       String fileName = "D:/Project/项目资料/1-阿里云上传测试视频/test.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");
       }

文章作者: wumangeng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 wumangeng !
  目录