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

Unified Diff: content/renderer/media/android/webmediaplayer_android.h

Issue 1570043002: Implement MediaSession on top of the WebMediaPlayerDelegate. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@media_session
Patch Set: Rebase yet again. 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/renderer/media/android/webmediaplayer_android.h
diff --git a/content/renderer/media/android/webmediaplayer_android.h b/content/renderer/media/android/webmediaplayer_android.h
index 6fa9ca5b49808df3e22c6d7bbb5d2bd53d312513..04d3a9f00f78a97d1e1b8291b4be5ba78fd66de6 100644
--- a/content/renderer/media/android/webmediaplayer_android.h
+++ b/content/renderer/media/android/webmediaplayer_android.h
@@ -18,7 +18,6 @@
#include "base/time/default_tick_clock.h"
#include "base/time/time.h"
#include "cc/layers/video_frame_provider.h"
-#include "content/public/renderer/render_frame_observer.h"
#include "content/renderer/media/android/media_info_loader.h"
#include "content/renderer/media/android/media_source_delegate.h"
#include "content/renderer/media/android/renderer_media_player_manager.h"
@@ -29,6 +28,7 @@
#include "media/base/demuxer_stream.h"
#include "media/base/media_keys.h"
#include "media/base/time_delta_interpolator.h"
+#include "media/blink/webmediaplayer_delegate.h"
#include "media/blink/webmediaplayer_params.h"
#include "media/cdm/proxy_decryptor.h"
#include "third_party/WebKit/public/platform/WebGraphicsContext3D.h"
@@ -66,7 +66,6 @@ class CdmFactory;
class MediaLog;
class MediaPermission;
class WebContentDecryptionModuleImpl;
-class WebMediaPlayerDelegate;
}
namespace content {
@@ -78,11 +77,12 @@ class RendererMediaPlayerManager;
// media player in the browser process. It listens to all the status changes
// sent from the browser process and sends playback controls to the media
// player.
-class WebMediaPlayerAndroid : public blink::WebMediaPlayer,
- public cc::VideoFrameProvider,
- public RenderFrameObserver,
- public StreamTextureFactoryContextObserver,
- public media::RendererMediaPlayerInterface {
+class WebMediaPlayerAndroid
+ : public blink::WebMediaPlayer,
+ public cc::VideoFrameProvider,
+ public StreamTextureFactoryContextObserver,
+ public media::RendererMediaPlayerInterface,
+ public NON_EXPORTED_BASE(media::WebMediaPlayerDelegate::Observer) {
public:
// Construct a WebMediaPlayerAndroid object. This class communicates with the
// MediaPlayerAndroid object in the browser process through |proxy|.
@@ -226,9 +226,6 @@ class WebMediaPlayerAndroid : public blink::WebMediaPlayer,
// However, the actual GlTexture is not released to keep the video screenshot.
void SuspendAndReleaseResources() override;
- // RenderFrameObserver implementation.
- void OnDestruct() override;
-
#if defined(VIDEO_HOLE)
// Calculate the boundary rectangle of the media player (i.e. location and
// size of the video frame).
@@ -272,6 +269,13 @@ class WebMediaPlayerAndroid : public blink::WebMediaPlayer,
// is not available.
void OnWaitingForDecryptionKey() override;
+ // WebMediaPlayerDelegate::Observer implementation.
+ void OnHidden() override;
+ void OnShown() override;
+ void OnPlay() override;
+ void OnPause() override;
+ void OnVolumeMultiplierUpdate(double multiplier) override;
+
protected:
// Helper method to update the playing state.
void UpdatePlayingState(bool is_playing_);
@@ -544,6 +548,12 @@ class WebMediaPlayerAndroid : public blink::WebMediaPlayer,
// Whether to delete the existing texture and re-create it.
bool suppress_deleting_texture_;
+ // Whether OnPlaybackComplete() has been called since the last playback.
+ bool playback_completed_;
+
+ double volume_;
+ double volume_multiplier_;
+
// NOTE: Weak pointers must be invalidated before all other member variables.
base::WeakPtrFactory<WebMediaPlayerAndroid> weak_factory_;

Powered by Google App Engine
This is Rietveld 408576698