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

Unified Diff: content/browser/media/session/media_session_delegate_default.cc

Issue 1971443002: Implement Audio Focus Manager for desktop. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix leak in unit tests Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/media/session/media_session.h ('k') | content/content_browser.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/media/session/media_session_delegate_default.cc
diff --git a/content/browser/media/session/media_session_delegate_default.cc b/content/browser/media/session/media_session_delegate_default.cc
index 688ce53d14f2743862310b10ae9d3c2286b72067..8a3db14fb2dc84a55ec612b4d849bd8f350ee0cc 100644
--- a/content/browser/media/session/media_session_delegate_default.cc
+++ b/content/browser/media/session/media_session_delegate_default.cc
@@ -5,11 +5,13 @@
#include "content/browser/media/session/media_session_delegate.h"
#include "base/command_line.h"
-#include "content/browser/web_contents/web_contents_impl.h"
+#include "content/browser/media/session/audio_focus_manager.h"
#include "media/base/media_switches.h"
namespace content {
+using AudioFocusType = AudioFocusManager::AudioFocusType;
+
namespace {
// MediaSessionDelegateDefault is the default implementation of
@@ -34,22 +36,21 @@ MediaSessionDelegateDefault::MediaSessionDelegateDefault(
: media_session_(media_session) {
}
-bool MediaSessionDelegateDefault::RequestAudioFocus(MediaSession::Type) {
+bool MediaSessionDelegateDefault::RequestAudioFocus(MediaSession::Type type) {
if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnableDefaultMediaSession)) {
return true;
}
- for (WebContentsImpl* web_contents : WebContentsImpl::GetAllWebContents()) {
- MediaSession* media_session = MediaSession::Get(web_contents);
- if (media_session == media_session_ || !media_session->IsActive())
- continue;
- media_session->Suspend(MediaSession::SuspendType::SYSTEM);
- }
+ AudioFocusManager::GetInstance()->RequestAudioFocus(
+ media_session_, type == MediaSession::Type::Content
+ ? AudioFocusType::Gain
+ : AudioFocusType::GainTransientMayDuck);
return true;
}
void MediaSessionDelegateDefault::AbandonAudioFocus() {
+ AudioFocusManager::GetInstance()->AbandonAudioFocus(media_session_);
}
// static
« no previous file with comments | « content/browser/media/session/media_session.h ('k') | content/content_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698