| 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 529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 540 } | 540 } |
| 541 } | 541 } |
| 542 | 542 |
| 543 void WebMediaPlayerImpl::setVolume(double volume) { | 543 void WebMediaPlayerImpl::setVolume(double volume) { |
| 544 DVLOG(1) << __func__ << "(" << volume << ")"; | 544 DVLOG(1) << __func__ << "(" << volume << ")"; |
| 545 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 545 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
| 546 volume_ = volume; | 546 volume_ = volume; |
| 547 pipeline_.SetVolume(volume_ * volume_multiplier_); | 547 pipeline_.SetVolume(volume_ * volume_multiplier_); |
| 548 if (watch_time_reporter_) | 548 if (watch_time_reporter_) |
| 549 watch_time_reporter_->OnVolumeChange(volume); | 549 watch_time_reporter_->OnVolumeChange(volume); |
| 550 |
| 551 // The play state is updated because the player might have left the autoplay |
| 552 // muted state. |
| 553 UpdatePlayState(); |
| 550 } | 554 } |
| 551 | 555 |
| 552 void WebMediaPlayerImpl::setSinkId( | 556 void WebMediaPlayerImpl::setSinkId( |
| 553 const blink::WebString& sink_id, | 557 const blink::WebString& sink_id, |
| 554 const blink::WebSecurityOrigin& security_origin, | 558 const blink::WebSecurityOrigin& security_origin, |
| 555 blink::WebSetSinkIdCallbacks* web_callback) { | 559 blink::WebSetSinkIdCallbacks* web_callback) { |
| 556 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 560 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
| 557 DVLOG(1) << __func__; | 561 DVLOG(1) << __func__; |
| 558 | 562 |
| 559 media::OutputDeviceStatusCB callback = | 563 media::OutputDeviceStatusCB callback = |
| (...skipping 1087 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1647 bool is_backgrounded = | 1651 bool is_backgrounded = |
| 1648 IsBackgroundedSuspendEnabled() && delegate_ && delegate_->IsHidden(); | 1652 IsBackgroundedSuspendEnabled() && delegate_ && delegate_->IsHidden(); |
| 1649 PlayState state = UpdatePlayState_ComputePlayState(is_remote, is_suspended, | 1653 PlayState state = UpdatePlayState_ComputePlayState(is_remote, is_suspended, |
| 1650 is_backgrounded); | 1654 is_backgrounded); |
| 1651 SetDelegateState(state.delegate_state); | 1655 SetDelegateState(state.delegate_state); |
| 1652 SetMemoryReportingState(state.is_memory_reporting_enabled); | 1656 SetMemoryReportingState(state.is_memory_reporting_enabled); |
| 1653 SetSuspendState(state.is_suspended || pending_suspend_resume_cycle_); | 1657 SetSuspendState(state.is_suspended || pending_suspend_resume_cycle_); |
| 1654 } | 1658 } |
| 1655 | 1659 |
| 1656 void WebMediaPlayerImpl::SetDelegateState(DelegateState new_state) { | 1660 void WebMediaPlayerImpl::SetDelegateState(DelegateState new_state) { |
| 1657 if (!delegate_ || delegate_state_ == new_state) | 1661 if (!delegate_) |
| 1658 return; | 1662 return; |
| 1659 | 1663 |
| 1664 if (delegate_state_ == new_state) { |
| 1665 if (delegate_state_ != DelegateState::PLAYING || |
| 1666 autoplay_muted_ == client_->isAutoplayingMuted()) { |
| 1667 return; |
| 1668 } |
| 1669 } |
| 1670 |
| 1660 delegate_state_ = new_state; | 1671 delegate_state_ = new_state; |
| 1661 | 1672 |
| 1662 switch (delegate_state_) { | 1673 switch (delegate_state_) { |
| 1663 case DelegateState::GONE: | 1674 case DelegateState::GONE: |
| 1664 delegate_->PlayerGone(delegate_id_); | 1675 delegate_->PlayerGone(delegate_id_); |
| 1665 break; | 1676 break; |
| 1666 case DelegateState::PLAYING: | 1677 case DelegateState::PLAYING: { |
| 1678 autoplay_muted_ = client_->isAutoplayingMuted(); |
| 1679 bool has_audio = autoplay_muted_ ? false : hasAudio(); |
| 1667 delegate_->DidPlay( | 1680 delegate_->DidPlay( |
| 1668 delegate_id_, hasVideo(), hasAudio(), false, | 1681 delegate_id_, hasVideo(), has_audio, false, |
| 1669 media::DurationToMediaContentType(pipeline_.GetMediaDuration())); | 1682 media::DurationToMediaContentType(pipeline_.GetMediaDuration())); |
| 1670 break; | 1683 break; |
| 1684 } |
| 1671 case DelegateState::PAUSED: | 1685 case DelegateState::PAUSED: |
| 1672 delegate_->DidPause(delegate_id_, false); | 1686 delegate_->DidPause(delegate_id_, false); |
| 1673 break; | 1687 break; |
| 1674 case DelegateState::ENDED: | 1688 case DelegateState::ENDED: |
| 1675 delegate_->DidPause(delegate_id_, true); | 1689 delegate_->DidPause(delegate_id_, true); |
| 1676 break; | 1690 break; |
| 1677 } | 1691 } |
| 1678 } | 1692 } |
| 1679 | 1693 |
| 1680 void WebMediaPlayerImpl::SetMemoryReportingState( | 1694 void WebMediaPlayerImpl::SetMemoryReportingState( |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1893 pipeline_metadata_.natural_size, | 1907 pipeline_metadata_.natural_size, |
| 1894 base::Bind(&GetCurrentTimeInternal, this))); | 1908 base::Bind(&GetCurrentTimeInternal, this))); |
| 1895 watch_time_reporter_->OnVolumeChange(volume_); | 1909 watch_time_reporter_->OnVolumeChange(volume_); |
| 1896 if (delegate_ && delegate_->IsHidden()) | 1910 if (delegate_ && delegate_->IsHidden()) |
| 1897 watch_time_reporter_->OnHidden(); | 1911 watch_time_reporter_->OnHidden(); |
| 1898 else | 1912 else |
| 1899 watch_time_reporter_->OnShown(); | 1913 watch_time_reporter_->OnShown(); |
| 1900 } | 1914 } |
| 1901 | 1915 |
| 1902 } // namespace media | 1916 } // namespace media |
| OLD | NEW |