pending_action_flags_(0),
playing_(false),
should_delay_load_event_(false),
+ playing_event_pending_(false),
have_fired_loaded_data_(false),
can_autoplay_(true),
muted_(false),
if (ready_state_ <= kHaveCurrentData)
ScheduleEvent(event_type_names::kWaiting);
- else if (ready_state_ >= kHaveFutureData)
+ else if (ready_state_ >= kHaveFutureData) {
+ if (IsHbbTV()) {
+ LOG(INFO) << "HbbTV: Send playing event on first timeupdate";
+ playing_event_pending_ = true;
+ }
+
ScheduleNotifyPlaying();
+ }
} else if (ready_state_ >= kHaveFutureData) {
ScheduleResolvePlayPromises();
}
if (periodic_event && !media_time_has_progressed)
return;
+ if (IsHbbTV() && playing_event_pending_) {
+ playing_event_pending_ = false;
+ ScheduleNotifyPlaying();
+ }
+
ScheduleEvent(event_type_names::kTimeupdate);
last_time_update_event_media_time_ = media_time;
}
void HTMLMediaElement::ScheduleNotifyPlaying() {
+ if (playing_event_pending_) {
+ LOG(INFO) << "Playing event is pending in timeupdate";
+ return;
+ }
+ LOG(INFO) << "Playing event is NOT pending";
+
ScheduleEvent(event_type_names::kPlaying);
ScheduleResolvePlayPromises();
}