| 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;
|
|
|