没有对实时转换请求的响应
No response on live transition request
我在 java 中使用 YouTube 直播 API。
我有时会遇到一个问题。
我写了一个 class 来检索现有的直播流并创建直播,确保该流正在发送数据,然后将它们绑定在一起,然后我发出 2 个转换请求。
首先我转换到测试(实时预览)请求,然后我转换到实时请求,
https://developers.google.com/youtube/v3/live/life-of-a-broadcast 上的手册第 4.1 节说
我应该轮询 API 直到广播生命周期状态变为直播
这是我写的:
'''
YouTube.LiveBroadcasts.Transition requestLive = CreateYouTube.getYoutube().liveBroadcasts()
.transition("live", returnedBroadcast.getId(), "snippet,status");
returnedBroadcast = requestLive.execute();
//poll while live starting (wait while starting live)
while(returnedBroadcast.getStatus().getLifeCycleStatus().equals("liveStarting")) {
returnedBroadcast = getBroadcastById(returnedBroadcast.getId());
System.out.println("polling liveStarting "+args[0]);
Thread.sleep(1000);
}
'''
有时它运行得很顺利,但有时状态没有改变,这意味着广播没有过渡到直播,我陷入了无限循环。
当然我可以手动跳出循环,但我仍然不明白为什么请求没有被处理,我可以修复它吗?
为什么要查找状态 liveStarting
而不是 live
?超时可能变得 不幸 并完全错过状态。 liveStarting
是过渡状态。
https://developers.google.com/youtube/v3/live/docs/liveBroadcasts#status.lifeCycleStatus
我还建议查看 LiveBroadcast
资源上的 contentDetails.enableAutoStart
属性。
您可以在附加 LiveStream
之前将 LiveBroadcast
更新为 enableAutoStart: true
。我发现这是一种更可靠的启动流的方法。
https://developers.google.com/youtube/v3/live/docs/liveBroadcasts#contentDetails.enableAutoStart
我找到了导致直播有时无法开始的问题。
问题是编码软件的输出分辨率
与创建流时设置为实时流 "cdn" 设置的分辨率不匹配。
YouTube Live API 没有设法抛出异常或通知我的程序,只是在我上面发布的代码中进入了无限循环,
我在 Live Control Room 的新测试版中发现了这个问题,它通知我编码器输出分辨率与流分辨率不匹配。
我在 java 中使用 YouTube 直播 API。 我有时会遇到一个问题。
我写了一个 class 来检索现有的直播流并创建直播,确保该流正在发送数据,然后将它们绑定在一起,然后我发出 2 个转换请求。
首先我转换到测试(实时预览)请求,然后我转换到实时请求, https://developers.google.com/youtube/v3/live/life-of-a-broadcast 上的手册第 4.1 节说 我应该轮询 API 直到广播生命周期状态变为直播
这是我写的: '''
YouTube.LiveBroadcasts.Transition requestLive = CreateYouTube.getYoutube().liveBroadcasts()
.transition("live", returnedBroadcast.getId(), "snippet,status");
returnedBroadcast = requestLive.execute();
//poll while live starting (wait while starting live)
while(returnedBroadcast.getStatus().getLifeCycleStatus().equals("liveStarting")) {
returnedBroadcast = getBroadcastById(returnedBroadcast.getId());
System.out.println("polling liveStarting "+args[0]);
Thread.sleep(1000);
}
''' 有时它运行得很顺利,但有时状态没有改变,这意味着广播没有过渡到直播,我陷入了无限循环。 当然我可以手动跳出循环,但我仍然不明白为什么请求没有被处理,我可以修复它吗?
为什么要查找状态 liveStarting
而不是 live
?超时可能变得 不幸 并完全错过状态。 liveStarting
是过渡状态。
https://developers.google.com/youtube/v3/live/docs/liveBroadcasts#status.lifeCycleStatus
我还建议查看 LiveBroadcast
资源上的 contentDetails.enableAutoStart
属性。
您可以在附加 LiveStream
之前将 LiveBroadcast
更新为 enableAutoStart: true
。我发现这是一种更可靠的启动流的方法。
https://developers.google.com/youtube/v3/live/docs/liveBroadcasts#contentDetails.enableAutoStart
我找到了导致直播有时无法开始的问题。 问题是编码软件的输出分辨率 与创建流时设置为实时流 "cdn" 设置的分辨率不匹配。
YouTube Live API 没有设法抛出异常或通知我的程序,只是在我上面发布的代码中进入了无限循环, 我在 Live Control Room 的新测试版中发现了这个问题,它通知我编码器输出分辨率与流分辨率不匹配。