| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/blink/webmediaplayer_impl.h" | 5 #include "media/blink/webmediaplayer_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 #include <limits> | 9 #include <limits> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 529 } | 529 } |
| 530 } | 530 } |
| 531 | 531 |
| 532 void WebMediaPlayerImpl::setVolume(double volume) { | 532 void WebMediaPlayerImpl::setVolume(double volume) { |
| 533 DVLOG(1) << __func__ << "(" << volume << ")"; | 533 DVLOG(1) << __func__ << "(" << volume << ")"; |
| 534 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 534 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
| 535 volume_ = volume; | 535 volume_ = volume; |
| 536 pipeline_.SetVolume(volume_ * volume_multiplier_); | 536 pipeline_.SetVolume(volume_ * volume_multiplier_); |
| 537 if (watch_time_reporter_) | 537 if (watch_time_reporter_) |
| 538 watch_time_reporter_->OnVolumeChange(volume); | 538 watch_time_reporter_->OnVolumeChange(volume); |
| 539 |
| 540 // The play state is updated because the player might have left the autoplay |
| 541 // muted state. |
| 542 UpdatePlayState(); |
| 539 } | 543 } |
| 540 | 544 |
| 541 void WebMediaPlayerImpl::setSinkId( | 545 void WebMediaPlayerImpl::setSinkId( |
| 542 const blink::WebString& sink_id, | 546 const blink::WebString& sink_id, |
| 543 const blink::WebSecurityOrigin& security_origin, | 547 const blink::WebSecurityOrigin& security_origin, |
| 544 blink::WebSetSinkIdCallbacks* web_callback) { | 548 blink::WebSetSinkIdCallbacks* web_callback) { |
| 545 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 549 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
| 546 DVLOG(1) << __func__; | 550 DVLOG(1) << __func__; |
| 547 | 551 |
| 548 media::OutputDeviceStatusCB callback = | 552 media::OutputDeviceStatusCB callback = |
| (...skipping 1028 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1577 bool is_backgrounded = | 1581 bool is_backgrounded = |
| 1578 IsBackgroundedSuspendEnabled() && delegate_ && delegate_->IsHidden(); | 1582 IsBackgroundedSuspendEnabled() && delegate_ && delegate_->IsHidden(); |
| 1579 PlayState state = UpdatePlayState_ComputePlayState(is_remote, is_suspended, | 1583 PlayState state = UpdatePlayState_ComputePlayState(is_remote, is_suspended, |
| 1580 is_backgrounded); | 1584 is_backgrounded); |
| 1581 SetDelegateState(state.delegate_state); | 1585 SetDelegateState(state.delegate_state); |
| 1582 SetMemoryReportingState(state.is_memory_reporting_enabled); | 1586 SetMemoryReportingState(state.is_memory_reporting_enabled); |
| 1583 SetSuspendState(state.is_suspended || pending_suspend_resume_cycle_); | 1587 SetSuspendState(state.is_suspended || pending_suspend_resume_cycle_); |
| 1584 } | 1588 } |
| 1585 | 1589 |
| 1586 void WebMediaPlayerImpl::SetDelegateState(DelegateState new_state) { | 1590 void WebMediaPlayerImpl::SetDelegateState(DelegateState new_state) { |
| 1587 if (!delegate_ || delegate_state_ == new_state) | 1591 if (!delegate_) |
| 1588 return; | 1592 return; |
| 1589 | 1593 |
| 1594 if (delegate_state_ == new_state) { |
| 1595 if (delegate_state_ != DelegateState::PLAYING || |
| 1596 autoplay_muted_ == client_->isAutoplayingMuted()) { |
| 1597 return; |
| 1598 } |
| 1599 } |
| 1600 |
| 1590 delegate_state_ = new_state; | 1601 delegate_state_ = new_state; |
| 1591 | 1602 |
| 1592 switch (delegate_state_) { | 1603 switch (delegate_state_) { |
| 1593 case DelegateState::GONE: | 1604 case DelegateState::GONE: |
| 1594 delegate_->PlayerGone(delegate_id_); | 1605 delegate_->PlayerGone(delegate_id_); |
| 1595 break; | 1606 break; |
| 1596 case DelegateState::PLAYING: | 1607 case DelegateState::PLAYING: { |
| 1608 autoplay_muted_ = client_->isAutoplayingMuted(); |
| 1609 bool has_audio = autoplay_muted_ ? false : hasAudio(); |
| 1597 delegate_->DidPlay( | 1610 delegate_->DidPlay( |
| 1598 delegate_id_, hasVideo(), hasAudio(), false, | 1611 delegate_id_, hasVideo(), has_audio, false, |
| 1599 media::DurationToMediaContentType(pipeline_.GetMediaDuration())); | 1612 media::DurationToMediaContentType(pipeline_.GetMediaDuration())); |
| 1600 break; | 1613 break; |
| 1614 } |
| 1601 case DelegateState::PAUSED: | 1615 case DelegateState::PAUSED: |
| 1602 delegate_->DidPause(delegate_id_, false); | 1616 delegate_->DidPause(delegate_id_, false); |
| 1603 break; | 1617 break; |
| 1604 case DelegateState::ENDED: | 1618 case DelegateState::ENDED: |
| 1605 delegate_->DidPause(delegate_id_, true); | 1619 delegate_->DidPause(delegate_id_, true); |
| 1606 break; | 1620 break; |
| 1607 } | 1621 } |
| 1608 } | 1622 } |
| 1609 | 1623 |
| 1610 void WebMediaPlayerImpl::SetMemoryReportingState( | 1624 void WebMediaPlayerImpl::SetMemoryReportingState( |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1815 pipeline_metadata_.natural_size, | 1829 pipeline_metadata_.natural_size, |
| 1816 base::Bind(&GetCurrentTimeInternal, this))); | 1830 base::Bind(&GetCurrentTimeInternal, this))); |
| 1817 watch_time_reporter_->OnVolumeChange(volume_); | 1831 watch_time_reporter_->OnVolumeChange(volume_); |
| 1818 if (delegate_ && delegate_->IsHidden()) | 1832 if (delegate_ && delegate_->IsHidden()) |
| 1819 watch_time_reporter_->OnHidden(); | 1833 watch_time_reporter_->OnHidden(); |
| 1820 else | 1834 else |
| 1821 watch_time_reporter_->OnShown(); | 1835 watch_time_reporter_->OnShown(); |
| 1822 } | 1836 } |
| 1823 | 1837 |
| 1824 } // namespace media | 1838 } // namespace media |
| OLD | NEW |