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

Unified Diff: content/browser/media/android/browser_media_player_manager.cc

Issue 1570043002: Implement MediaSession on top of the WebMediaPlayerDelegate. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@media_session
Patch Set: Created 4 years, 11 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
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 2d4a520a1bc7189b70eb2b4bcdc47346a7e940b3..fdc2731ec0f63e526cfdab740dd3ef6ea07be73a 100644
--- a/content/browser/media/android/browser_media_player_manager.cc
+++ b/content/browser/media/android/browser_media_player_manager.cc
@@ -10,7 +10,6 @@
#include "content/browser/frame_host/render_frame_host_impl.h"
#include "content/browser/media/android/browser_demuxer_android.h"
#include "content/browser/media/android/media_resource_getter_impl.h"
-#include "content/browser/media/android/media_session.h"
#include "content/browser/media/android/media_throttler.h"
#include "content/browser/media/android/media_web_contents_observer_android.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
@@ -52,9 +51,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;
@@ -228,7 +224,6 @@ BrowserMediaPlayerManager::~BrowserMediaPlayerManager() {
for (MediaPlayerAndroid* player : players_)
player->DeleteOnCorrectThread();
- MediaSession::Get(web_contents())->RemovePlayers(this);
players_.weak_clear();
}
@@ -304,7 +299,6 @@ void BrowserMediaPlayerManager::OnMediaMetadataChanged(
void BrowserMediaPlayerManager::OnPlaybackComplete(int player_id) {
Send(new MediaPlayerMsg_MediaPlaybackCompleted(RoutingID(), player_id));
- MediaSession::Get(web_contents())->RemovePlayer(this, player_id);
if (fullscreen_player_id_ == player_id)
video_view_->OnPlaybackComplete();
@@ -402,33 +396,11 @@ MediaPlayerAndroid* BrowserMediaPlayerManager::GetPlayer(int player_id) {
bool BrowserMediaPlayerManager::RequestPlay(int player_id,
base::TimeDelta duration) {
- 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));
+ // TODO(dalecurtis, timav): Remove the concept of RequestPlay(), it's added
+ // latency for the vast majority of playbacks. Instead playback is paused
+ // after startup by the MediaWebContentsObserverAndroid if permission is
+ // denied. http://crbug.com/XXXXXX
+ return true;
}
#if defined(VIDEO_HOLE)
@@ -596,9 +568,6 @@ void BrowserMediaPlayerManager::OnPause(
MediaPlayerAndroid* player = GetPlayer(player_id);
if (player)
player->Pause(is_media_related_action);
-
- if (is_media_related_action)
- MediaSession::Get(web_contents())->OnPlayerPaused(this, player_id);
}
void BrowserMediaPlayerManager::OnSetVolume(int player_id, double volume) {
@@ -613,14 +582,8 @@ void BrowserMediaPlayerManager::OnSetPoster(int player_id, const GURL& url) {
void BrowserMediaPlayerManager::OnReleaseResources(int player_id) {
MediaPlayerAndroid* player = GetPlayer(player_id);
- if (player) {
- // Videos can't play in the background, so are removed from the media
- // session.
- if (player->GetVideoWidth() > 0)
- MediaSession::Get(web_contents())->RemovePlayer(this, player_id);
-
+ if (player)
ReleasePlayer(player);
- }
if (player_id == fullscreen_player_id_)
fullscreen_player_is_released_ = true;
}
@@ -654,7 +617,6 @@ void BrowserMediaPlayerManager::DestroyPlayer(int player_id) {
#endif
(*it)->DeleteOnCorrectThread();
players_.weak_erase(it);
- MediaSession::Get(web_contents())->RemovePlayer(this, player_id);
break;
}
}

Powered by Google App Engine
This is Rietveld 408576698