在向YouTube直播时,有没有办法获取录制的流的当前时间?我希望能够在整个直播流中的某些点发送API请求,以获得流的当前分钟/秒。我想要达到的最终结果是能够记录亮点列表。实质上,用户按下按钮并在该时刻获得流的当前时间,然后用户可以添加当时发生的事件的注释。从阅读所有文档来看,我找不到获取录制流的当前时间的方法。
答案 0 :(得分:2)
您似乎可以使用iFrame API的getDuration()
方法执行此操作。
https://developers.google.com/youtube/iframe_api_reference#getDuration
查看直播活动的特别说明:
如果当前正在播放的视频是直播事件,则getDuration()函数将返回自实时视频流开始以来经过的时间。具体而言,这是视频在没有重置或中断的情况下流式传输的时间量。此外,此持续时间通常比实际事件时间长,因为流式传输可能在事件开始时间之前开始。
您没有指定语言,因此我将以两种不同的语言发布代码示例。两者都使用iFrame API。
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 Events的持续时间为0。
答案 1 :(得分:0)
这很旧,但是您可以通过youtube API获得liveStreamingDetails.actualStartTime
。
掌握了ActualStartTime,您可以计算出经过了多少时间。
"https://www.googleapis.com/youtube/v3/videos"
"?part=liveStreamingDetails"
"&id=$id&key=$_key"