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