阿里视频点播服务

1,API:阿里云提供给固定的地址,只需要调用这个固定的地址,像地址传递参数实现功能。

2,SDK:SDK对api方式进行封装,更方便使用。

httpclient技术用来调取api地址(Httpclient不需要浏览器就可以实现请求响应过程)

3,导入坐标

复制代码
</properties>
    <dependencies>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-vod</artifactId>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-sdk-vod-upload</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
        </dependency>

        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
        </dependency>
    </dependencies>
复制代码

其中

<dependency>
    <groupId>com.aliyun</groupId>
     <artifactId>aliyun-sdk-vod-upload</artifactId>
</dependency>
这个坐标会报错,是aliyun-sdk-vod-upload没有开源,所以不能直接在pom文件中直接引用依赖

在这个链接查看上传SDK历史版本

Java上传SDK - 视频点播 - 阿里云 找到1.4.1点击下载

然后在下载好的解压缩文件的VODUploadDemo-java-1.4.11/bin 下在地址栏输入cmd,然后执行命令:

mvn install:install-file -DgroupId=com.aliyun -DartifactId=aliyun-sdk-vod-upload -Dversion=1.4.11 -Dpackaging=jar -Dfile=aliyun-java-vod-upload-1.4.11.jar

idea退出从新刷新一下就好了

================================================================================================

1,初始化直接看文档

2,实现根据视频id获取视频播放地址

复制代码
 1  //根据视频id获取视频播放地址
 2         //创建初始化对象
 3         DefaultAcsClient client = InitObject.initVodClient("LTAI5tKQjKtXhQz6hDpFmF93",
 4                 "R5sttyyGt17PB3Y8QxzSNUYe4Bt13c");
 5 
 6         //创建获取视频地址的request和response
 7         GetPlayInfoRequest request = new GetPlayInfoRequest();
 8         GetPlayInfoResponse response = new GetPlayInfoResponse();
 9         //向request对象设置视频id
10         request.setVideoId("2e570fc0a20243ec9c9e72b352bab29e");
11         //调用初始化对象里面的方法,传递request获取数据
12         response = client.getAcsResponse(request);
13         List<GetPlayInfoResponse.PlayInfo> playInfoList = response.getPlayInfoList();
14         //播放地址
15         for (GetPlayInfoResponse.PlayInfo playInfo : playInfoList) {
16             System.out.print("PlayInfo.PlayURL = " + playInfo.getPlayURL() + "\n");
17         }
18         //Base信息
19         System.out.print("VideoBase.Title = " + response.getVideoBase().getTitle() + "\n");
20     }
复制代码

3,实现根据视频id获取视频播放凭证(用于获取加密视频)

复制代码
 1 //根据视频id获取视频播放凭证
 2         //创建初始化对象
 3         DefaultAcsClient client = InitObject.initVodClient("LTAI5tKQjKtXhQz6hDpFmF93", "R5sttyyGt17PB3Y8QxzSNUYe4Bt13c");
 4         //创建获取视频地址的request和response
 5         GetVideoPlayAuthRequest request = new GetVideoPlayAuthRequest();
 6         GetVideoPlayAuthResponse response = new GetVideoPlayAuthResponse();
 7         //向request对象设置视频id
 8         request.setVideoId("2e570fc0a20243ec9c9e72b352bab29e");
 9         //调用初始化对象里面的方法得到凭证
10         response=client.getAcsResponse(request);
11         System.out.print("PlayAuth = " + response.getPlayAuth() + "\n");
12         //VideoMeta信息
13         System.out.print("VideoMeta.Title = " + response.getVideoMeta().getTitle() + "\n");
复制代码

4,上传本地视频

复制代码
 String accessKeyId = "LTAI5tKQjKtXhQz6hDpFmF93";
        String accessKeySecret = "R5sttyyGt17PB3Y8QxzSNUYe4Bt13c";

        String title = "测试上传视频";   //上传之后文件名称
        String fileName = "C:/Users/lenovo/OneDrive/桌面/上传视频.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");
        }
复制代码

 

posted @   不爱学习的摆烂王  阅读(172)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示