开发者社区 问答 正文

使用视频点播服务sdk获取视频播放地址的接口无法获取到视频时长

版本如下:

 <aliyun.java.sdk.core.version>4.5.1</aliyun.java.sdk.core.version>
        <aliyun.java.sdk.vod.version>2.15.11</aliyun.java.sdk.vod.version>

<aliyun.java.vod.upload.version>1.4.13</aliyun.java.vod.upload.version>
        <aliyun.java.sdk.vpc.version>3.0.5</aliyun.java.sdk.vpc.version>

 <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>vod20170321</artifactId>
                <version>2.0.0</version>
                <type>pom</type>
            </dependency>

代码部分:

DefaultAcsClient client = initVodClient();
        GetPlayInfoRequest request = new GetPlayInfoRequest();
        request.setVideoId(videoId);
        GetPlayInfoResponse getPlayInfoResponse = client.getAcsResponse(request);
        List<GetPlayInfoResponse.PlayInfo> playInfoList = getPlayInfoResponse.getPlayInfoList();

返回的GetPlayInfoResponse的VideoBase中的duration返回为0.0 playInfoList中的duration字段也是返回0.0

期望得到你们的回答!!

展开
收起
游客bvmz22jwxnnu2 2023-03-23 16:14:38 517 分享 版权
2 条回答
写回答
取消 提交回答
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    可以使用官方提供的Web播放器进行集成接入,本小节提供两种方法。

    方法一 获取视频的播放URL,通过在站点页面中引入视频URL获取。

    获取播放URL的API接口,详情请参见获取视频播放地址。 说明:如果点播域名开启了鉴权,那么获取到的URL是被鉴权过的,存在有效期限制,需要定期更换新URL才能保证可以一直正常使用。 通过视频点播OpenAPI的SDK获取视频播放URL,SDK获取方法请参见阿里云开发工具包(SDK)。本文以Python SDK为例,示例如下。 import json from aliyunsdkvod.request.v20170321 import GetPlayInfoRequest from aliyunsdkcore import client clt = client.AcsClient('your AccessKeyId','your AccessKeySecret','cn-shanghai') def get_video_playauth(clt): request = GetPlayInfoRequest.GetPlayInfoRequest() request.set_accept_format('JSON') request.set_VideoId('your VideoID') response = json.loads(clt.do_action(request)) return response response_str = get_video_playauth(clt) print response_str 方法二 使用官方提供的Web播放器,详情请参见产品概述,通过vid和playAuth方式去播放,其中vid为视频ID(videoId),可以在点播控制台的域名管理中获取,playAuth API接口获取请参见获取视频播放地址接口。或者通过点播OpenAPI的SDK获取。本文以Python SDK为例获取PlayAuth,示例如下。

    说明:playAuth过期时间只有100秒,且不可自定义设置。

    import json from aliyunsdkvod.request.v20170321 import GetVideoPlayAuthRequest from aliyunsdkcore import client clt = client.AcsClient('your accessKeyID','your accessKeySecret','cn-shanghai') def get_video_playauth(clt): request = GetPlayInfoRequest.GetVideoPlayAuthRequest() request.set_accept_format('JSON') request.set_VideoId('your videoId') response = json.loads(clt.do_action(request)) return response response_str = get_video_playauth(clt) print response_str

    2023-03-23 16:30:08
    赞同 展开评论
  • DefaultAcsClient client = initVodClient(); GetPlayInfoRequest request = new GetPlayInfoRequest(); request.setVideoId(videoId); GetPlayInfoResponse getPlayInfoResponse = client.getAcsResponse(request); List<GetPlayInfoResponse.PlayInfo> playInfoList = getPlayInfoResponse.getPlayInfoList(); 上边是我的代码部分: GetPlayInfoResponse 里面的VideoBase中的duration字段返回结果为“0.0”, GetPlayInfoResponse.PlayInfo的duration返回结果也为“0.0”,

    2023-03-23 16:24:16
    赞同 展开评论