Chromium Code Reviews| Index: content/browser/media/android/browser_media_player_manager.cc |
| diff --git a/content/browser/media/android/browser_media_player_manager.cc b/content/browser/media/android/browser_media_player_manager.cc |
| index 8d60c6a19de7ea9c566df6a91bdcf8fc8ae9c389..7484a9dc7cd1ede178e927cbf9e9b521d0ac33af 100644 |
| --- a/content/browser/media/android/browser_media_player_manager.cc |
| +++ b/content/browser/media/android/browser_media_player_manager.cc |
| @@ -52,9 +52,6 @@ namespace content { |
| const int kMediaPlayerThreshold = 1; |
| const int kInvalidMediaPlayerId = -1; |
| -// Minimal duration of a media player in order to be considered as Content type. |
| -const int kMinimumDurationForContentInSeconds = 5; |
| - |
| static BrowserMediaPlayerManager::Factory g_factory = NULL; |
| static media::MediaUrlInterceptor* media_url_interceptor_ = NULL; |
| @@ -233,7 +230,6 @@ BrowserMediaPlayerManager::~BrowserMediaPlayerManager() { |
| for (MediaPlayerAndroid* player : players_) |
| player->DeleteOnCorrectThread(); |
| - MediaSession::Get(web_contents())->RemovePlayers(this); |
| players_.weak_clear(); |
| } |
| @@ -309,13 +305,11 @@ void BrowserMediaPlayerManager::OnMediaMetadataChanged( |
| void BrowserMediaPlayerManager::OnPlaybackComplete(int player_id) { |
| Send(new MediaPlayerMsg_MediaPlaybackCompleted(RoutingID(), player_id)); |
| - MediaSession::Get(web_contents())->RemovePlayer(this, player_id); |
| } |
| void BrowserMediaPlayerManager::OnMediaInterrupted(int player_id) { |
| // Tell WebKit that the audio should be paused, then release all resources |
| Send(new MediaPlayerMsg_MediaPlayerReleased(RoutingID(), player_id)); |
| - MediaSession::Get(web_contents())->RemovePlayer(this, player_id); |
| ReleaseResources(player_id); |
| } |
| @@ -406,45 +400,12 @@ MediaPlayerAndroid* BrowserMediaPlayerManager::GetPlayer(int player_id) { |
| bool BrowserMediaPlayerManager::RequestPlay(int player_id, |
| base::TimeDelta duration, |
| bool has_audio) { |
| - if (!has_audio) |
| - return true; |
| - |
| - MediaSession::Type media_session_type = |
| - duration == base::TimeDelta() || |
| - duration.InSeconds() > kMinimumDurationForContentInSeconds |
| - ? MediaSession::Type::Content |
| - : MediaSession::Type::Transient; |
| - |
| - bool succeeded = MediaSession::Get(web_contents())->AddPlayer( |
| - this, player_id, media_session_type); |
| - if (!succeeded) |
| - Send(new MediaPlayerMsg_DidMediaPlayerPause(RoutingID(), player_id)); |
| - return succeeded; |
| -} |
| - |
| -void BrowserMediaPlayerManager::OnSuspend(int player_id) { |
| - MediaPlayerAndroid* player = GetPlayer(player_id); |
| - DCHECK(player); |
| - |
| - player->Pause(true); |
| - Send(new MediaPlayerMsg_DidMediaPlayerPause(RoutingID(), player_id)); |
| -} |
| - |
| -void BrowserMediaPlayerManager::OnResume(int player_id) { |
| - MediaPlayerAndroid* player = GetPlayer(player_id); |
| - DCHECK(player); |
| - |
| - player->Start(); |
| - Send(new MediaPlayerMsg_DidMediaPlayerPlay(RoutingID(), player_id)); |
| -} |
| - |
| -void BrowserMediaPlayerManager::OnSetVolumeMultiplier( |
| - int player_id, double volume_multiplier) { |
| - MediaPlayerAndroid* player = GetPlayer(player_id); |
| - if (!player) |
| - return; |
| - |
| - player->SetVolumeMultiplier(volume_multiplier); |
| + DCHECK(player_id_to_delegate_id_map_.find(player_id) != |
| + player_id_to_delegate_id_map_.end()); |
| + return MediaWebContentsObserverAndroid::FromWebContents(web_contents_) |
| + ->RequestPlay(render_frame_host_, |
| + player_id_to_delegate_id_map_[player_id], has_audio, |
| + IsPlayingRemotely(player_id), duration); |
| } |
| #if defined(VIDEO_HOLE) |
| @@ -589,6 +550,8 @@ void BrowserMediaPlayerManager::OnInitialize( |
| if (!player) |
| return; |
| + player_id_to_delegate_id_map_[media_player_params.player_id] = |
| + media_player_params.delegate_id; |
| AddPlayer(player); |
|
Tima Vaisburd
2016/01/26 07:10:14
Do we need consistency between |players_| and |pla
DaleCurtis
2016/01/26 16:17:58
Yes, that seems reasonable. I don't see anyone usi
Tima Vaisburd
2016/01/26 18:44:20
Neither do I.
DaleCurtis
2016/01/27 02:25:13
Done.
|
| } |
| @@ -621,9 +584,6 @@ void BrowserMediaPlayerManager::OnPause( |
| MediaPlayerAndroid* player = GetPlayer(player_id); |
| if (player) |
| player->Pause(is_media_related_action); |
| - |
| - if (is_media_related_action && !IsPlayingRemotely(player_id)) |
| - MediaSession::Get(web_contents())->OnPlayerPaused(this, player_id); |
| } |
| void BrowserMediaPlayerManager::OnSetVolume(int player_id, double volume) { |
| @@ -637,7 +597,6 @@ void BrowserMediaPlayerManager::OnSetPoster(int player_id, const GURL& url) { |
| } |
| void BrowserMediaPlayerManager::OnSuspendAndReleaseResources(int player_id) { |
| - MediaSession::Get(web_contents())->RemovePlayer(this, player_id); |
| ReleaseResources(player_id); |
| } |
| @@ -674,11 +633,11 @@ void BrowserMediaPlayerManager::DestroyPlayer(int player_id) { |
| #endif |
| (*it)->DeleteOnCorrectThread(); |
| players_.weak_erase(it); |
| - MediaSession::Get(web_contents())->RemovePlayer(this, player_id); |
| break; |
| } |
| } |
| active_players_.erase(player_id); |
| + player_id_to_delegate_id_map_.erase(player_id); |
| } |
| void BrowserMediaPlayerManager::ReleaseResources(int player_id) { |