2

Есть ли способ получить текущее время записанного потока при трансляции на YouTube в прямом эфире? Я хочу иметь возможность отправлять запрос API в определенных точках в реальном времени, чтобы получить текущую минуту/секунду потока. Конечный результат, который я пытаюсь достичь, - это записать список основных моментов. По сути, пользователь нажимает кнопку и в это время получает текущее время потока, тогда пользователь может добавить примечание к тому, что произошло в то время. Однако, читая все документы, я не могу найти способ получить текущее время записанного потока.Получить текущую продолжительность YouTube Live Event

+0

Эй, @Brandon Rohde, мой ответ вам помог? Дайте мне знать, если вам нужна дополнительная помощь. – JAL

+1

Извините за отложенный ответ @JAL! Я пересматривал это сегодня, и это определенно помогло. Его шаг в правильном направлении, однако он все еще очень непоследовательный и ненадежный с живыми потоками. Кажется, что это несколько хуже, чем дольше поток продолжается. –

+0

Согласен. API Live Streaming по-прежнему очень нестабилен даже после выпуска более года. Кроме того, API iFrame подвергается устареванию в любое время, поэтому в идеале YouTube должен обеспечить лучший способ получить продолжительность с помощью своего проигрывателя HTML5. – JAL

ответ

2

Похоже, вы можете сделать это с помощью метода iFrame API getDuration().

https://developers.google.com/youtube/iframe_api_reference#getDuration

Заканчивать специальное примечание для живых событий:

Если в настоящее время играет видео живое событие, getDuration() функция возвращает время, прошедшее с момента начала видео в реальном времени поток , В частности, это время, в течение которого видео передавалось без сброса или прерывания. Кроме того, эта продолжительность обычно больше, чем фактическое время события, так как потоковая передача может начинаться до времени начала события.

Вы не указали язык, поэтому я отправлю примеры кода на двух разных языках. Оба используют API iFrame.

JavaScript:

window.onYouTubePlayerReady = function(playerId) { 
    window.ytplayer = document.getElementById("ytPlayer"); 
    console.log(window.ytplayer.getDuration()); 
} 

Objective-C (с использованием youtube-ios-player-helper класса YouTube,)

@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.

Смежные вопросы