有没有办法在直播到YouTube live时获取录制流的当前时间?我希望能够在整个直播流中的某些点发送API请求,以获取流的当前分钟/秒。我试图实现的最终结果是能够记录一系列亮点。本质上,用户按下一个按钮,它就会得到该时刻流的当前时间,然后用户可以为该时刻发生的事情添加备注。但是,通过阅读所有文档,我找不到一种方法来获取录制的流的当前时间。
发布于 2015-03-19 04:48:49
看起来您可以使用iFrame应用编程接口的getDuration()方法来完成此操作。
https://developers.google.com/youtube/iframe_api_reference#getDuration
查看现场活动的特别说明:
如果当前正在播放的视频是直播事件,则getDuration()函数将返回自直播视频流开始以来所经过的时间。具体地说,这是视频在未被重置或中断的情况下流式传输的时间量。此外,此持续时间通常长于实际事件时间,因为流式传输可能在事件的开始时间之前开始。
您没有指定语言,所以我将用两种不同的语言发布代码示例。两者都利用iFrame应用编程接口。
JavaScript:
window.onYouTubePlayerReady = function(playerId) {
window.ytplayer = document.getElementById("ytPlayer");
console.log(window.ytplayer.getDuration());
}Objective-C (使用YouTube的youtube-ios-player-helper类)
@property (weak, nonatomic) IBOutlet YTPlayerView *playerView;
// ...
- (void)viewDidLoad {
[super viewDidLoad];
[[self.playerView loadWithVideoId:@"iGTIK_8ydoI"] // live at the time answer was posted
}
// ...
- (void)getDurationOfPlayingVideo {
NSLog(@"duration: %d", [self.playerView duration]);
}正如我个人测试中的免责声明: Live Streaming API非常喜怒无常且不稳定,我发现有些Live事件返回的持续时间为0。
发布于 2019-03-17 03:16:08
这是旧的,但您可以通过youtube API获得liveStreamingDetails.actualStartTime。
有了actualStartTime,您就可以计算出所用的时间。
"https://www.googleapis.com/youtube/v3/videos"
"?part=liveStreamingDetails"
"&id=$id&key=$_key"https://stackoverflow.com/questions/29050771
复制相似问题