| Index: content/browser/media/session/media_session.cc
|
| diff --git a/content/browser/media/session/media_session.cc b/content/browser/media/session/media_session.cc
|
| index 79df56701892976eb46c99079b083a886f0331b1..a5ffe5e2c0e913e3ec5c3f362c8aa7c84f045625 100644
|
| --- a/content/browser/media/session/media_session.cc
|
| +++ b/content/browser/media/session/media_session.cc
|
| @@ -70,6 +70,9 @@ void MediaSession::SetMetadata(const MediaMetadata& metadata) {
|
| bool MediaSession::AddPlayer(MediaSessionObserver* observer,
|
| int player_id,
|
| media::MediaContentType media_content_type) {
|
| + if (media_content_type == media::MediaContentType::Pepper)
|
| + return AddPepperPlayer(observer, player_id);
|
| +
|
| observer->OnSetVolumeMultiplier(player_id, volume_multiplier_);
|
|
|
| // Determine the audio focus type required for playing the new player.
|
| @@ -121,6 +124,13 @@ void MediaSession::RemovePlayer(MediaSessionObserver* observer,
|
| if (it != players_.end())
|
| players_.erase(it);
|
|
|
| + auto it_pepper = pepper_players_.find(PlayerIdentifier(observer, player_id));
|
| + if (it != pepper_players_.end()) {
|
| + pepper_players_.erase(it);
|
| + if (pepper_players_.empty())
|
| + delegate_->AbandonPepperAudioFocus();
|
| + }
|
| +
|
| AbandonSystemAudioFocusIfNeeded();
|
| }
|
|
|
| @@ -132,6 +142,15 @@ void MediaSession::RemovePlayers(MediaSessionObserver* observer) {
|
| ++it;
|
| }
|
|
|
| + for (auto it = pepper_players_.begin(); it != pepper_players_.end();) {
|
| + if (it->observer == observer)
|
| + pepper_players_.erase(it++);
|
| + else
|
| + ++it;
|
| + if (pepper_players_.empty())
|
| + delegate_->AbandonPepperAudioFocus();
|
| + }
|
| +
|
| AbandonSystemAudioFocusIfNeeded();
|
| }
|
|
|
| @@ -371,4 +390,16 @@ void MediaSession::SetAudioFocusState(State audio_focus_state) {
|
| }
|
| }
|
|
|
| +bool MediaSession::AddPepperPlayer(
|
| + MediaSessionObserver* observer, int player_id) {
|
| + pepper_players_.insert(PlayerIdentifier(observer, player_id));
|
| + return delegate_->RequestPepperAudioFocus();
|
| +}
|
| +
|
| +void MediaSession::SetPepperVolumeMultiplier(double volume_multiplier) {
|
| + volume_multiplier_ = volume_multiplier;
|
| + for (const auto& it : pepper_players_)
|
| + it.observer->OnSetVolumeMultiplier(it.player_id, volume_multiplier_);
|
| +}
|
| +
|
| } // namespace content
|
|
|