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

Side by Side Diff: content/renderer/media/renderer_webmediaplayer_delegate.cc

Issue 1671603002: Mute audio for Spitzer playbacks that haven't received focus yet. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix comment. 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
« no previous file with comments | « content/renderer/media/renderer_webmediaplayer_delegate.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/renderer/media/renderer_webmediaplayer_delegate.h" 5 #include "content/renderer/media/renderer_webmediaplayer_delegate.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "content/common/media/media_player_delegate_messages.h" 9 #include "content/common/media/media_player_delegate_messages.h"
10 #include "content/public/renderer/render_frame.h" 10 #include "content/public/renderer/render_frame.h"
11 #include "third_party/WebKit/public/platform/WebMediaPlayer.h" 11 #include "third_party/WebKit/public/platform/WebMediaPlayer.h"
12 12
13 namespace media { 13 namespace media {
14 14
15 RendererWebMediaPlayerDelegate::RendererWebMediaPlayerDelegate( 15 RendererWebMediaPlayerDelegate::RendererWebMediaPlayerDelegate(
16 content::RenderFrame* render_frame) 16 content::RenderFrame* render_frame)
17 : RenderFrameObserver(render_frame) {} 17 : RenderFrameObserver(render_frame) {}
18 18
19 RendererWebMediaPlayerDelegate::~RendererWebMediaPlayerDelegate() {} 19 RendererWebMediaPlayerDelegate::~RendererWebMediaPlayerDelegate() {}
20 20
21 int RendererWebMediaPlayerDelegate::AddObserver(Observer* observer) { 21 int RendererWebMediaPlayerDelegate::AddObserver(Observer* observer) {
22 return id_map_.Add(observer); 22 const int delegate_id = id_map_.Add(observer);
23 MuteObserverUntilPlaybackFocusApproved(delegate_id);
24 return delegate_id;
23 } 25 }
24 26
25 void RendererWebMediaPlayerDelegate::RemoveObserver(int delegate_id) { 27 void RendererWebMediaPlayerDelegate::RemoveObserver(int delegate_id) {
26 DCHECK(id_map_.Lookup(delegate_id)); 28 DCHECK(id_map_.Lookup(delegate_id));
27 id_map_.Remove(delegate_id); 29 id_map_.Remove(delegate_id);
28 } 30 }
29 31
30 void RendererWebMediaPlayerDelegate::DidPlay(int delegate_id, 32 void RendererWebMediaPlayerDelegate::DidPlay(int delegate_id,
31 bool has_video, 33 bool has_video,
32 bool has_audio, 34 bool has_audio,
33 bool is_remote, 35 bool is_remote,
34 base::TimeDelta duration) { 36 base::TimeDelta duration) {
35 DCHECK(id_map_.Lookup(delegate_id)); 37 DCHECK(id_map_.Lookup(delegate_id));
36 has_played_media_ = true; 38 has_played_media_ = true;
37 Send(new MediaPlayerDelegateHostMsg_OnMediaPlaying( 39 Send(new MediaPlayerDelegateHostMsg_OnMediaPlaying(
38 routing_id(), delegate_id, has_video, has_audio, is_remote, duration)); 40 routing_id(), delegate_id, has_video, has_audio, is_remote, duration));
39 } 41 }
40 42
41 void RendererWebMediaPlayerDelegate::DidPause(int delegate_id, 43 void RendererWebMediaPlayerDelegate::DidPause(int delegate_id,
42 bool reached_end_of_stream) { 44 bool reached_end_of_stream) {
43 DCHECK(id_map_.Lookup(delegate_id)); 45 DCHECK(id_map_.Lookup(delegate_id));
46 MuteObserverUntilPlaybackFocusApproved(delegate_id);
44 Send(new MediaPlayerDelegateHostMsg_OnMediaPaused(routing_id(), delegate_id, 47 Send(new MediaPlayerDelegateHostMsg_OnMediaPaused(routing_id(), delegate_id,
45 reached_end_of_stream)); 48 reached_end_of_stream));
46 } 49 }
47 50
48 void RendererWebMediaPlayerDelegate::PlayerGone(int delegate_id) { 51 void RendererWebMediaPlayerDelegate::PlayerGone(int delegate_id) {
49 DCHECK(id_map_.Lookup(delegate_id)); 52 DCHECK(id_map_.Lookup(delegate_id));
53 MuteObserverUntilPlaybackFocusApproved(delegate_id);
50 Send(new MediaPlayerDelegateHostMsg_OnMediaDestroyed(routing_id(), 54 Send(new MediaPlayerDelegateHostMsg_OnMediaDestroyed(routing_id(),
51 delegate_id)); 55 delegate_id));
52 } 56 }
53 57
54 bool RendererWebMediaPlayerDelegate::IsHidden() { 58 bool RendererWebMediaPlayerDelegate::IsHidden() {
55 return render_frame()->IsHidden(); 59 return render_frame()->IsHidden();
56 } 60 }
57 61
58 void RendererWebMediaPlayerDelegate::WasHidden() { 62 void RendererWebMediaPlayerDelegate::WasHidden() {
59 for (IDMap<Observer>::iterator it(&id_map_); !it.IsAtEnd(); it.Advance()) 63 for (IDMap<Observer>::iterator it(&id_map_); !it.IsAtEnd(); it.Advance())
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 } 95 }
92 96
93 void RendererWebMediaPlayerDelegate::OnMediaDelegateVolumeMultiplierUpdate( 97 void RendererWebMediaPlayerDelegate::OnMediaDelegateVolumeMultiplierUpdate(
94 int delegate_id, 98 int delegate_id,
95 double multiplier) { 99 double multiplier) {
96 Observer* observer = id_map_.Lookup(delegate_id); 100 Observer* observer = id_map_.Lookup(delegate_id);
97 if (observer) 101 if (observer)
98 observer->OnVolumeMultiplierUpdate(multiplier); 102 observer->OnVolumeMultiplierUpdate(multiplier);
99 } 103 }
100 104
105 void RendererWebMediaPlayerDelegate::MuteObserverUntilPlaybackFocusApproved(
106 int delegate_id) {
107 #if defined(OS_ANDROID)
108 id_map_.Lookup(delegate_id)->OnVolumeMultiplierUpdate(0);
109 #endif
110 }
111
101 } // namespace media 112 } // namespace media
OLDNEW
« no previous file with comments | « content/renderer/media/renderer_webmediaplayer_delegate.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698