Index: content/renderer/media/renderer_webmediaplayer_delegate.cc |
diff --git a/content/renderer/media/renderer_webmediaplayer_delegate.cc b/content/renderer/media/renderer_webmediaplayer_delegate.cc |
index 2c7054648da8bc4c9c4da3fc1fe9fe8dba8df94c..c6b593231d8ffc00d7a4092de1456a3fcd561130 100644 |
--- a/content/renderer/media/renderer_webmediaplayer_delegate.cc |
+++ b/content/renderer/media/renderer_webmediaplayer_delegate.cc |
@@ -19,7 +19,9 @@ RendererWebMediaPlayerDelegate::RendererWebMediaPlayerDelegate( |
RendererWebMediaPlayerDelegate::~RendererWebMediaPlayerDelegate() {} |
int RendererWebMediaPlayerDelegate::AddObserver(Observer* observer) { |
- return id_map_.Add(observer); |
+ const int delegate_id = id_map_.Add(observer); |
+ MuteObserverUntilPlaybackFocusApproved(delegate_id); |
+ return delegate_id; |
} |
void RendererWebMediaPlayerDelegate::RemoveObserver(int delegate_id) { |
@@ -41,12 +43,14 @@ void RendererWebMediaPlayerDelegate::DidPlay(int delegate_id, |
void RendererWebMediaPlayerDelegate::DidPause(int delegate_id, |
bool reached_end_of_stream) { |
DCHECK(id_map_.Lookup(delegate_id)); |
+ MuteObserverUntilPlaybackFocusApproved(delegate_id); |
Send(new MediaPlayerDelegateHostMsg_OnMediaPaused(routing_id(), delegate_id, |
reached_end_of_stream)); |
} |
void RendererWebMediaPlayerDelegate::PlayerGone(int delegate_id) { |
DCHECK(id_map_.Lookup(delegate_id)); |
+ MuteObserverUntilPlaybackFocusApproved(delegate_id); |
Send(new MediaPlayerDelegateHostMsg_OnMediaDestroyed(routing_id(), |
delegate_id)); |
} |
@@ -98,4 +102,11 @@ void RendererWebMediaPlayerDelegate::OnMediaDelegateVolumeMultiplierUpdate( |
observer->OnVolumeMultiplierUpdate(multiplier); |
} |
+void RendererWebMediaPlayerDelegate::MuteObserverUntilPlaybackFocusApproved( |
+ int delegate_id) { |
+#if defined(OS_ANDROID) |
+ id_map_.Lookup(delegate_id)->OnVolumeMultiplierUpdate(0); |
+#endif |
+} |
+ |
} // namespace media |