Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(338)

Side by Side Diff: content/browser/media/android/media_session_controller.cc

Issue 1580493004: Plumb audio focus support for spitzer clients. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@delegate_hookup
Patch Set: Rebase. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "content/browser/media/android/media_session_controller.h" 5 #include "content/browser/media/android/media_session_controller.h"
6 6
7 #include "content/browser/media/android/media_session.h" 7 #include "content/browser/media/android/media_session.h"
8 #include "content/browser/media/media_web_contents_observer.h" 8 #include "content/browser/media/media_web_contents_observer.h"
9 #include "content/common/media/media_player_delegate_messages.h" 9 #include "content/common/media/media_player_delegate_messages.h"
10 #include "content/public/browser/browser_thread.h" 10 #include "content/public/browser/browser_thread.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 : MediaSession::Type::Transient; 68 : MediaSession::Type::Transient;
69 69
70 // If a session can't be created, force a pause immediately. Attempt to add a 70 // If a session can't be created, force a pause immediately. Attempt to add a
71 // session even if we already have one. MediaSession expects AddPlayer() to 71 // session even if we already have one. MediaSession expects AddPlayer() to
72 // be called after OnPlaybackPaused() to reactivate the session. 72 // be called after OnPlaybackPaused() to reactivate the session.
73 if (!media_session_->AddPlayer(this, player_id_, media_session_type)) { 73 if (!media_session_->AddPlayer(this, player_id_, media_session_type)) {
74 OnSuspend(player_id_); 74 OnSuspend(player_id_);
75 return false; 75 return false;
76 } 76 }
77 77
78 is_playing_ = true;
78 has_session_ = true; 79 has_session_ = true;
79 return true; 80 return true;
80 } 81 }
81 82
82 void MediaSessionController::OnSuspend(int player_id) { 83 void MediaSessionController::OnSuspend(int player_id) {
83 DCHECK_EQ(player_id_, player_id); 84 DCHECK_EQ(player_id_, player_id);
85 is_playing_ = false;
84 media_web_contents_observer_->Send( 86 media_web_contents_observer_->Send(
85 new MediaPlayerDelegateMsg_Pause(id_.first->GetRoutingID(), id_.second)); 87 new MediaPlayerDelegateMsg_Pause(id_.first->GetRoutingID(), id_.second));
86 } 88 }
87 89
88 void MediaSessionController::OnResume(int player_id) { 90 void MediaSessionController::OnResume(int player_id) {
89 DCHECK_EQ(player_id_, player_id); 91 DCHECK_EQ(player_id_, player_id);
92 is_playing_ = true;
90 media_web_contents_observer_->Send( 93 media_web_contents_observer_->Send(
91 new MediaPlayerDelegateMsg_Play(id_.first->GetRoutingID(), id_.second)); 94 new MediaPlayerDelegateMsg_Play(id_.first->GetRoutingID(), id_.second));
92 } 95 }
93 96
94 void MediaSessionController::OnSetVolumeMultiplier(int player_id, 97 void MediaSessionController::OnSetVolumeMultiplier(int player_id,
95 double volume_multiplier) { 98 double volume_multiplier) {
96 DCHECK_EQ(player_id_, player_id); 99 DCHECK_EQ(player_id_, player_id);
97 media_web_contents_observer_->Send( 100 media_web_contents_observer_->Send(
98 new MediaPlayerDelegateMsg_UpdateVolumeMultiplier( 101 new MediaPlayerDelegateMsg_UpdateVolumeMultiplier(
99 id_.first->GetRoutingID(), id_.second, volume_multiplier)); 102 id_.first->GetRoutingID(), id_.second, volume_multiplier));
100 } 103 }
101 104
102 void MediaSessionController::OnPlaybackPaused() { 105 void MediaSessionController::OnPlaybackPaused() {
103 // We check for suspension here since the renderer may issue its own pause 106 // We check for suspension here since the renderer may issue its own pause
104 // in response to or while a pause from the browser is in flight. 107 // in response to or while a pause from the browser is in flight.
105 if (!media_session_->IsSuspended()) 108 if (!media_session_->IsSuspended())
106 media_session_->OnPlayerPaused(this, player_id_); 109 media_session_->OnPlayerPaused(this, player_id_);
110 is_playing_ = false;
107 } 111 }
108 112
109 } // namespace content 113 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698