Index: content/browser/android/content_video_view.h |
diff --git a/content/browser/android/content_video_view.h b/content/browser/android/content_video_view.h |
index b42b3c6de75821139035d91046dccc25af79bd64..deb5ffc7f11c91edb3a226ab7cf8395c49fec9de 100644 |
--- a/content/browser/android/content_video_view.h |
+++ b/content/browser/android/content_video_view.h |
@@ -13,73 +13,64 @@ |
#include "base/memory/scoped_ptr.h" |
#include "base/timer.h" |
-namespace webkit_media { |
-struct MediaMetadataAndroid; |
-} |
- |
namespace content { |
-class MediaPlayerDelegateAndroid; |
+class MediaPlayerManagerAndroid; |
-// Native mirror of ContentVideoView.java. |
+// Native mirror of ContentVideoView.java. This class is responsible for |
+// creating the Java video view and pass all the player status change to |
+// it. It accepts media control from Java class, and forwards it to |
+// MediaPlayerManagerAndroid. |
class ContentVideoView { |
public: |
- ContentVideoView(); |
+ // Construct a ContentVideoView object. The |manager| will handle all the |
+ // playback controls from the Java class. |
+ explicit ContentVideoView(MediaPlayerManagerAndroid* manager); |
~ContentVideoView(); |
static bool RegisterContentVideoView(JNIEnv* env); |
- void Init(JNIEnv*, jobject obj, jobject weak_this); |
- // -------------------------------------------------------------------------- |
- // All these functions are called on UI thread |
+ // Getter method called by the Java class to get the media information. |
int GetVideoWidth(JNIEnv*, jobject obj) const; |
int GetVideoHeight(JNIEnv*, jobject obj) const; |
int GetDurationInMilliSeconds(JNIEnv*, jobject obj) const; |
int GetCurrentPosition(JNIEnv*, jobject obj) const; |
bool IsPlaying(JNIEnv*, jobject obj); |
+ void UpdateMediaMetadata(JNIEnv*, jobject obj); |
+ |
+ // Method to create and destroy the Java view. |
+ void DestroyContentVideoView(); |
+ void CreateContentVideoView(); |
+ |
+ // Called when the Java fullscreen view is destroyed. If |
+ // |release_media_player| is true, |manager_| needs to release the player |
+ // as we are quitting the app. |
+ void ExitFullscreen(JNIEnv*, jobject, jboolean release_media_player); |
+ |
+ // Media control method called by the Java class. |
void SeekTo(JNIEnv*, jobject obj, jint msec); |
- int GetPlayerId(JNIEnv*, jobject obj) const; |
- int GetRouteId(JNIEnv*, jobject obj) const; |
- int GetRenderHandle(JNIEnv*, jobject obj) const; |
void Play(JNIEnv*, jobject obj); |
void Pause(JNIEnv*, jobject obj); |
- // -------------------------------------------------------------------------- |
- void PrepareAsync(); |
- void DestroyContentVideoView(); |
- void UpdateMediaMetadata(JNIEnv*, jobject obj); |
- void DestroyContentVideoView(JNIEnv*, jobject); |
- void DestroyContentVideoView(JNIEnv*, jobject, jboolean release_media_player); |
- void CreateContentVideoView(MediaPlayerDelegateAndroid* player); |
- void SetSurface(JNIEnv*, |
- jobject obj, |
- jobject surface, |
- jint route_id, |
- jint player_id); |
- void UpdateMediaMetadata(); |
+ // Called by the Java class to pass the surface object to the player. |
+ void SetSurface(JNIEnv*, jobject obj, jobject surface); |
+ // Method called by |manager_| to inform the Java class about player status |
+ // change. |
+ void UpdateMediaMetadata(); |
void OnMediaPlayerError(int errorType); |
void OnVideoSizeChanged(int width, int height); |
void OnBufferingUpdate(int percent); |
void OnPlaybackComplete(); |
private: |
- // In some certain cases if the renderer crashes, the ExitFullscreen message |
- // will never acknowledged by the renderer. |
- void OnTimeout(); |
- |
- webkit_media::MediaMetadataAndroid* GetMediaMetadata(); |
- |
- int ConvertSecondsToMilliSeconds(float seconds) const; |
- |
- MediaPlayerDelegateAndroid* player_; |
+ // Object that manages the fullscreen media player. It is responsible for |
+ // handling all the playback controls. |
+ MediaPlayerManagerAndroid* manager_; |
+ // Reference to the Java object. |
base::android::ScopedJavaGlobalRef<jobject> j_content_video_view_; |
- // A timer to keep track of when the acknowledgement of exitfullscreen |
- // message times out. |
- base::OneShotTimer<ContentVideoView> timeout_timer_; |
- |
DISALLOW_COPY_AND_ASSIGN(ContentVideoView); |
}; |