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 UpdatePlayState(); |
539 } | 541 } |
540 | 542 |
541 void WebMediaPlayerImpl::setSinkId( | 543 void WebMediaPlayerImpl::setSinkId( |
542 const blink::WebString& sink_id, | 544 const blink::WebString& sink_id, |
543 const blink::WebSecurityOrigin& security_origin, | 545 const blink::WebSecurityOrigin& security_origin, |
544 blink::WebSetSinkIdCallbacks* web_callback) { | 546 blink::WebSetSinkIdCallbacks* web_callback) { |
545 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 547 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
546 DVLOG(1) << __func__; | 548 DVLOG(1) << __func__; |
547 | 549 |
548 media::OutputDeviceStatusCB callback = | 550 media::OutputDeviceStatusCB callback = |
(...skipping 1028 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1577 bool is_backgrounded = | 1579 bool is_backgrounded = |
1578 IsBackgroundedSuspendEnabled() && delegate_ && delegate_->IsHidden(); | 1580 IsBackgroundedSuspendEnabled() && delegate_ && delegate_->IsHidden(); |
1579 PlayState state = UpdatePlayState_ComputePlayState(is_remote, is_suspended, | 1581 PlayState state = UpdatePlayState_ComputePlayState(is_remote, is_suspended, |
1580 is_backgrounded); | 1582 is_backgrounded); |
1581 SetDelegateState(state.delegate_state); | 1583 SetDelegateState(state.delegate_state); |
1582 SetMemoryReportingState(state.is_memory_reporting_enabled); | 1584 SetMemoryReportingState(state.is_memory_reporting_enabled); |
1583 SetSuspendState(state.is_suspended || pending_suspend_resume_cycle_); | 1585 SetSuspendState(state.is_suspended || pending_suspend_resume_cycle_); |
1584 } | 1586 } |
1585 | 1587 |
1586 void WebMediaPlayerImpl::SetDelegateState(DelegateState new_state) { | 1588 void WebMediaPlayerImpl::SetDelegateState(DelegateState new_state) { |
1587 if (!delegate_ || delegate_state_ == new_state) | 1589 if (!delegate_) |
1588 return; | 1590 return; |
1589 | 1591 |
| 1592 if (delegate_state_ != DelegateState::PLAYING && |
| 1593 delegate_state_ == new_state) { |
| 1594 return; |
| 1595 } |
| 1596 |
1590 delegate_state_ = new_state; | 1597 delegate_state_ = new_state; |
1591 | 1598 |
1592 switch (delegate_state_) { | 1599 switch (delegate_state_) { |
1593 case DelegateState::GONE: | 1600 case DelegateState::GONE: |
1594 delegate_->PlayerGone(delegate_id_); | 1601 delegate_->PlayerGone(delegate_id_); |
1595 break; | 1602 break; |
1596 case DelegateState::PLAYING: | 1603 case DelegateState::PLAYING: { |
| 1604 bool has_audio = client_->isAutoplayingMuted() ? false : hasAudio(); |
1597 delegate_->DidPlay( | 1605 delegate_->DidPlay( |
1598 delegate_id_, hasVideo(), hasAudio(), false, | 1606 delegate_id_, hasVideo(), has_audio, false, |
1599 media::DurationToMediaContentType(pipeline_.GetMediaDuration())); | 1607 media::DurationToMediaContentType(pipeline_.GetMediaDuration())); |
1600 break; | 1608 break; |
| 1609 } |
1601 case DelegateState::PAUSED: | 1610 case DelegateState::PAUSED: |
1602 delegate_->DidPause(delegate_id_, false); | 1611 delegate_->DidPause(delegate_id_, false); |
1603 break; | 1612 break; |
1604 case DelegateState::ENDED: | 1613 case DelegateState::ENDED: |
1605 delegate_->DidPause(delegate_id_, true); | 1614 delegate_->DidPause(delegate_id_, true); |
1606 break; | 1615 break; |
1607 } | 1616 } |
1608 } | 1617 } |
1609 | 1618 |
1610 void WebMediaPlayerImpl::SetMemoryReportingState( | 1619 void WebMediaPlayerImpl::SetMemoryReportingState( |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1815 pipeline_metadata_.natural_size, | 1824 pipeline_metadata_.natural_size, |
1816 base::Bind(&GetCurrentTimeInternal, this))); | 1825 base::Bind(&GetCurrentTimeInternal, this))); |
1817 watch_time_reporter_->OnVolumeChange(volume_); | 1826 watch_time_reporter_->OnVolumeChange(volume_); |
1818 if (delegate_ && delegate_->IsHidden()) | 1827 if (delegate_ && delegate_->IsHidden()) |
1819 watch_time_reporter_->OnHidden(); | 1828 watch_time_reporter_->OnHidden(); |
1820 else | 1829 else |
1821 watch_time_reporter_->OnShown(); | 1830 watch_time_reporter_->OnShown(); |
1822 } | 1831 } |
1823 | 1832 |
1824 } // namespace media | 1833 } // namespace media |
OLD | NEW |