2

直播到 YouTube 时,有没有办法获取录制流的当前时间?我希望能够在整个实时流中的某些点发送 API 请求,以获取流的当前分钟/秒。我想要达到的最终结果是能够记录一个亮点列表。本质上,用户按下一个按钮,它会获得当时流的当前时间,然后用户可以为当时发生的事情添加注释。但是,通过阅读所有文档,我找不到获取录制流的当前时间的方法。

4

2 回答 2

3

看起来你可以用 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 Event 返回的持续时间为 0。

于 2015-03-18T20:48:48.510 回答
1

这是旧的,但您可以liveStreamingDetails.actualStartTime通过 youtube API 获得。
有了实际的StartTime,您就可以计算出经过了多少时间。

"https://www.googleapis.com/youtube/v3/videos"
        "?part=liveStreamingDetails"
        "&id=$id&key=$_key"
于 2019-03-16T19:16:07.980 回答