直播录制到视频点播中回调我们这边服务接口,然后接口中调用GetPlayInfo - 获取音视频播放地址接口,获取不到信息,返回的错误信息是: 视频状态无效,当前状态为%s。只有Normal状态的视频才能播放。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的错误信息“视频状态无效,当前状态为%s。只有Normal状态的视频才能播放”,可以判断问题的核心在于视频的状态未达到可播放的条件。以下是详细的分析和解决方案:
GetPlayInfo
接口时,只有状态为Normal
的视频才能正常获取播放地址。Checking
或Blocked
),则无法通过该接口获取播放地址。Normal
状态,例如:
SearchMedia
或其他相关接口,查询视频的当前状态(Status
字段)。Normal
。如果状态不是Normal
,需要进一步排查原因。VideoId
,并通过回调通知您的服务(如AddLiveRecordVideoComplete
事件)。Normal
。Normal
,可能是以下原因导致:
AddLiveRecordVideoComplete
回调后,记录VideoId
并持续监听后续的事件通知(如转码完成事件)。GetPlayInfo
接口获取播放地址。GetPlayInfo
接口返回的播放地址不符合预期,可能是因为未设置默认播放域名。Normal
是调用GetPlayInfo
接口的前提条件,请确保视频已完成所有必要的处理流程(如转码、审核等)。Checking
或Blocked
,可以通过点播控制台或API调整其状态。以下是一个调用GetPlayInfo
接口的示例代码(Java),供参考:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.GetPlayInfoRequest;
import com.aliyuncs.vod.model.v20170321.GetPlayInfoResponse;
public class GetPlayInfoExample {
public static void main(String[] args) {
// 初始化客户端
DefaultProfile profile = DefaultProfile.getProfile(
"<your-region-id>", // 地域ID
"<your-access-key-id>", // AccessKey ID
"<your-access-key-secret>"); // AccessKey Secret
DefaultAcsClient client = new DefaultAcsClient(profile);
// 创建请求
GetPlayInfoRequest request = new GetPlayInfoRequest();
request.setVideoId("<your-video-id>"); // 替换为实际的VideoId
try {
// 发起请求并处理响应
GetPlayInfoResponse response = client.getAcsResponse(request);
System.out.println("播放地址: " + response.getPlayInfoList().get(0).getPlayURL());
} catch (Exception e) {
System.out.println("错误信息: " + e.getMessage());
}
}
}
通过上述步骤,您可以确认视频状态是否符合要求,并确保调用GetPlayInfo
接口时能够成功获取播放地址。如果问题仍未解决,请检查视频点播控制台中的日志信息,或联系阿里云技术支持获取进一步帮助。
云服务器(Elastic Compute Service,简称 ECS)是一种简单高效、处理能力可弹性伸缩的计算服务,可快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本。