Home | History | Annotate | Download | only in android
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef MEDIA_BASE_ANDROID_MEDIA_PLAYER_MANAGER_H_
      6 #define MEDIA_BASE_ANDROID_MEDIA_PLAYER_MANAGER_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/time/time.h"
     10 #include "media/base/android/demuxer_stream_player_params.h"
     11 #include "media/base/media_export.h"
     12 
     13 namespace media {
     14 
     15 class MediaPlayerAndroid;
     16 class MediaResourceGetter;
     17 class MediaUrlInterceptor;
     18 
     19 // This class is responsible for managing active MediaPlayerAndroid objects.
     20 class MEDIA_EXPORT MediaPlayerManager {
     21  public:
     22   virtual ~MediaPlayerManager() {}
     23 
     24   // Returns a pointer to the MediaResourceGetter object.
     25   virtual MediaResourceGetter* GetMediaResourceGetter() = 0;
     26 
     27   // Returns a pointer to the MediaUrlInterceptor object or null.
     28   virtual MediaUrlInterceptor* GetMediaUrlInterceptor() = 0;
     29 
     30   // Called when time update messages need to be sent. Args: player ID,
     31   // current time.
     32   virtual void OnTimeUpdate(int player_id, base::TimeDelta current_time) = 0;
     33 
     34   // Called when media metadata changed. Args: player ID, duration of the
     35   // media, width, height, whether the metadata is successfully extracted.
     36   virtual void OnMediaMetadataChanged(
     37       int player_id,
     38       base::TimeDelta duration,
     39       int width,
     40       int height,
     41       bool success) = 0;
     42 
     43   // Called when playback completed. Args: player ID.
     44   virtual void OnPlaybackComplete(int player_id) = 0;
     45 
     46   // Called when media download was interrupted. Args: player ID.
     47   virtual void OnMediaInterrupted(int player_id) = 0;
     48 
     49   // Called when buffering has changed. Args: player ID, percentage
     50   // of the media.
     51   virtual void OnBufferingUpdate(int player_id, int percentage) = 0;
     52 
     53   // Called when seek completed. Args: player ID, current time.
     54   virtual void OnSeekComplete(
     55       int player_id,
     56       const base::TimeDelta& current_time) = 0;
     57 
     58   // Called when error happens. Args: player ID, error type.
     59   virtual void OnError(int player_id, int error) = 0;
     60 
     61   // Called when video size has changed. Args: player ID, width, height.
     62   virtual void OnVideoSizeChanged(int player_id, int width, int height) = 0;
     63 
     64   // Returns the player that's in the fullscreen mode currently.
     65   virtual MediaPlayerAndroid* GetFullscreenPlayer() = 0;
     66 
     67   // Returns the player with the specified id.
     68   virtual MediaPlayerAndroid* GetPlayer(int player_id) = 0;
     69 
     70   // Called by the player to get a hardware protected surface.
     71   virtual void RequestFullScreen(int player_id) = 0;
     72 
     73 #if defined(VIDEO_HOLE)
     74   // Returns true if a media player should use video-overlay for the embedded
     75   // encrypted video.
     76   virtual bool ShouldUseVideoOverlayForEmbeddedEncryptedVideo() = 0;
     77 #endif  // defined(VIDEO_HOLE)
     78 };
     79 
     80 }  // namespace media
     81 
     82 #endif  // MEDIA_BASE_ANDROID_MEDIA_PLAYER_MANAGER_H_
     83