开发者社区> 问答> 正文

VOD-视频点播引用最新版的java SDK,vod的demo无法运行。为什么?

VOD-视频点播引用最新版的java SDK,vod的demo无法运行。大概看了一下没有com.aliyun.vod20170321...的包,只有com.aliyuncs....的引用。这是啥问题?POM引用如下: com.aliyun aliyun-java-sdk-core 4.6.0

com.aliyun aliyun-java-sdk-vod 2.16.16 运行的demo如下: public static void main(String[] args_) throws Exception {
    java.util.List<String> args = java.util.Arrays.asList(args_);
    com.aliyun.vod20170321.Client client = Sample.initVodClient(com.aliyun.darabonba.env.EnvClient.getEnv("ACCESS_KEY_ID"), com.aliyun.darabonba.env.EnvClient.getEnv("ACCESS_KEY_SECRET"), args.get(0));
    // 1.获取视频上传地址和凭证,并生成视频信息
    CreateUploadVideoRequest createUploadVideoRequest = new CreateUploadVideoRequest()
            .setTitle(args.get(1))
            .setFileName(args.get(2));
    CreateUploadVideoResponse createUploadVideoResponse = client.createUploadVideo(createUploadVideoRequest);
    com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(TeaModel.buildMap(createUploadVideoResponse)));
    // 媒体id
    String uploadVideoId = createUploadVideoResponse.body.videoId;
    com.aliyun.teaconsole.Client.log(uploadVideoId);
    // 如果视频文件过大,上传超时后可以刷新视频凭证,然后继续上传
    RefreshUploadVideoRequest refreshUploadVideoRequest = new RefreshUploadVideoRequest()
            .setVideoId(uploadVideoId);
    RefreshUploadVideoResponse refreshUploadVideoReponse = client.refreshUploadVideo(refreshUploadVideoRequest);
    com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(TeaModel.buildMap(refreshUploadVideoReponse)));
    // 2.oss视频文件上传,需要用户实现
    // 3.上传过程中,获取媒体上传详情
    GetUploadDetailsRequest getUploadDetailsRequest = new GetUploadDetailsRequest()
            .setMediaIds(uploadVideoId);
    GetUploadDetailsResponse getUploadDetailsReponse = client.getUploadDetails(getUploadDetailsRequest);
    com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(TeaModel.buildMap(getUploadDetailsReponse)));
    // 4.媒体上传完成之后,可以获取媒体播放信息进行播放
    // 4.1 通过播放凭证播放
    GetPlayInfoRequest getPlayInfoRequest = new GetPlayInfoRequest()
            .setVideoId(uploadVideoId);
    GetPlayInfoResponse getPlayInfoReponse = client.getPlayInfo(getPlayInfoRequest);
    com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(TeaModel.buildMap(getPlayInfoReponse)));
    // 4.2 通过播放地址播放
    GetVideoPlayAuthRequest getVideoPlayAuthRequest = new GetVideoPlayAuthRequest()
            .setVideoId(uploadVideoId);
    GetVideoPlayAuthResponse getVideoPlayAuthReponse = client.getVideoPlayAuth(getVideoPlayAuthRequest);
    com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(TeaModel.buildMap(getVideoPlayAuthReponse)));
}

展开
收起
三分钟热度的鱼 2023-06-12 21:02:26 136 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    根据您提供的代码和POM文件,可以看出问题可能在于引用的SDK版本不兼容导致的。您使用的aliyun-java-sdk-core和aliyun-java-sdk-vod的版本分别为4.6.0和2.16.16,但是您代码中的import语句是com.aliyun.vod20170321.Client,这个Client类并不存在于aliyun-java-sdk-vod 2.16.16版本中,而是在较旧的版本中存在,因此无法编译并运行您的代码。

    解决方法是,您可以选择使用aliyun-java-sdk-vod的较早版本,例如1.0.0或1.0.5版本,这些版本中包含了com.aliyun.vod20170321.Client类。您也可以考虑修改代码中的import语句,改为com.aliyuncs.v20170321.vod.Client,这个类是在aliyun-java-sdk-vod 2.16.16版本中存在的。

    2023-06-13 08:17:38
    赞同 展开评论 打赏
  • 根据你提供的信息,可以看出你使用的是阿里云VOD-视频点播的Java SDK,但是你引用的依赖版本不对,导致找不到对应的包。

    根据官方文档显示,当前最新版本的阿里云Java SDK for VOD是2.3.7,你可以尝试将POM文件中的依赖改成以下代码:

    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-core</artifactId>
        <version>4.6.2</version>
    </dependency>
    
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-vod</artifactId>
        <version>2.3.7</version>
    </dependency>
    

    之后重新构建你的项目,看看是否能够正常运行VOD-视频点播的demo。

    2023-06-13 08:07:46
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载