| Index: Source/core/html/HTMLMediaElement.cpp
|
| diff --git a/Source/core/html/HTMLMediaElement.cpp b/Source/core/html/HTMLMediaElement.cpp
|
| index 86ec6ffd1cbf01b7fa3a9448b3b356fe1b01e574..7ff89bfb82fe47e2cafb09ea82a12580936a4eff 100644
|
| --- a/Source/core/html/HTMLMediaElement.cpp
|
| +++ b/Source/core/html/HTMLMediaElement.cpp
|
| @@ -2354,6 +2354,31 @@ void HTMLMediaElement::setMuted(bool muted)
|
| scheduleEvent(EventTypeNames::volumechange);
|
| }
|
|
|
| +void HTMLMediaElement::updateVolume()
|
| +{
|
| + if (webMediaPlayer())
|
| + webMediaPlayer()->setVolume(effectiveMediaVolume());
|
| +
|
| + if (hasMediaControls())
|
| + mediaControls()->updateVolume();
|
| +}
|
| +
|
| +double HTMLMediaElement::effectiveMediaVolume() const
|
| +{
|
| + if (m_muted)
|
| + return 0;
|
| +
|
| + if (m_mediaController && m_mediaController->muted())
|
| + return 0;
|
| +
|
| + double volume = m_volume;
|
| +
|
| + if (m_mediaController)
|
| + volume *= m_mediaController->volume();
|
| +
|
| + return volume;
|
| +}
|
| +
|
| // The spec says to fire periodic timeupdate events (those sent while playing) every
|
| // "15 to 250ms", we choose the slowest frequency
|
| static const double maxTimeupdateEventFrequency = 0.25;
|
| @@ -3276,28 +3301,6 @@ bool HTMLMediaElement::stoppedDueToErrors() const
|
| return false;
|
| }
|
|
|
| -void HTMLMediaElement::updateVolume()
|
| -{
|
| - if (webMediaPlayer())
|
| - webMediaPlayer()->setVolume(playerVolume());
|
| -
|
| - if (hasMediaControls())
|
| - mediaControls()->updateVolume();
|
| -}
|
| -
|
| -double HTMLMediaElement::playerVolume() const
|
| -{
|
| - double volumeMultiplier = 1;
|
| - bool shouldMute = m_muted;
|
| -
|
| - if (m_mediaController) {
|
| - volumeMultiplier *= m_mediaController->volume();
|
| - shouldMute = m_mediaController->muted();
|
| - }
|
| -
|
| - return shouldMute ? 0 : m_volume * volumeMultiplier;
|
| -}
|
| -
|
| void HTMLMediaElement::updatePlayState()
|
| {
|
| if (!m_player)
|
|
|