Index: media/blink/webmediaplayer_impl.cc |
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc |
index 7c67743e982b430e3c7794a1e1d2a3310806ee3c..9c6c7010da9136c9fc8268079c424fe2d00584f1 100644 |
--- a/media/blink/webmediaplayer_impl.cc |
+++ b/media/blink/webmediaplayer_impl.cc |
@@ -536,6 +536,8 @@ void WebMediaPlayerImpl::setVolume(double volume) { |
pipeline_.SetVolume(volume_ * volume_multiplier_); |
if (watch_time_reporter_) |
watch_time_reporter_->OnVolumeChange(volume); |
+ |
+ UpdatePlayState(); |
} |
void WebMediaPlayerImpl::setSinkId( |
@@ -1584,8 +1586,13 @@ void WebMediaPlayerImpl::UpdatePlayState() { |
} |
void WebMediaPlayerImpl::SetDelegateState(DelegateState new_state) { |
- if (!delegate_ || delegate_state_ == new_state) |
+ if (!delegate_) |
+ return; |
+ |
+ if (delegate_state_ != DelegateState::PLAYING && |
+ delegate_state_ == new_state) { |
return; |
+ } |
delegate_state_ = new_state; |
@@ -1593,11 +1600,13 @@ void WebMediaPlayerImpl::SetDelegateState(DelegateState new_state) { |
case DelegateState::GONE: |
delegate_->PlayerGone(delegate_id_); |
break; |
- case DelegateState::PLAYING: |
+ case DelegateState::PLAYING: { |
+ bool has_audio = client_->isAutoplayingMuted() ? false : hasAudio(); |
delegate_->DidPlay( |
- delegate_id_, hasVideo(), hasAudio(), false, |
+ delegate_id_, hasVideo(), has_audio, false, |
media::DurationToMediaContentType(pipeline_.GetMediaDuration())); |
break; |
+ } |
case DelegateState::PAUSED: |
delegate_->DidPause(delegate_id_, false); |
break; |