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.
5 #ifndef MEDIA_BASE_ANDROID_MEDIA_PLAYER_MANAGER_H_
6 #define MEDIA_BASE_ANDROID_MEDIA_PLAYER_MANAGER_H_
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"
15 class MediaPlayerAndroid;
16 class MediaResourceGetter;
18 // This class is responsible for managing active MediaPlayerAndroid objects.
19 class MEDIA_EXPORT MediaPlayerManager {
21 virtual ~MediaPlayerManager() {}
23 // Return a pointer to the MediaResourceGetter object.
24 virtual MediaResourceGetter* GetMediaResourceGetter() = 0;
26 // Called when time update messages need to be sent. Args: player ID,
28 virtual void OnTimeUpdate(int player_id, base::TimeDelta current_time) = 0;
30 // Called when media metadata changed. Args: player ID, duration of the
31 // media, width, height, whether the metadata is successfully extracted.
32 virtual void OnMediaMetadataChanged(
34 base::TimeDelta duration,
39 // Called when playback completed. Args: player ID.
40 virtual void OnPlaybackComplete(int player_id) = 0;
42 // Called when media download was interrupted. Args: player ID.
43 virtual void OnMediaInterrupted(int player_id) = 0;
45 // Called when buffering has changed. Args: player ID, percentage
47 virtual void OnBufferingUpdate(int player_id, int percentage) = 0;
49 // Called when seek completed. Args: player ID, current time.
50 virtual void OnSeekComplete(
52 const base::TimeDelta& current_time) = 0;
54 // Called when error happens. Args: player ID, error type.
55 virtual void OnError(int player_id, int error) = 0;
57 // Called when video size has changed. Args: player ID, width, height.
58 virtual void OnVideoSizeChanged(int player_id, int width, int height) = 0;
60 // Returns the player that's in the fullscreen mode currently.
61 virtual MediaPlayerAndroid* GetFullscreenPlayer() = 0;
63 // Returns the player with the specified id.
64 virtual MediaPlayerAndroid* GetPlayer(int player_id) = 0;
66 // Called by the player to get a hardware protected surface.
67 virtual void RequestFullScreen(int player_id) = 0;
69 #if defined(VIDEO_HOLE)
70 // Returns true if a media player should use video-overlay for the embedded
72 virtual bool ShouldUseVideoOverlayForEmbeddedEncryptedVideo() = 0;
73 #endif // defined(VIDEO_HOLE)
78 #endif // MEDIA_BASE_ANDROID_MEDIA_PLAYER_MANAGER_H_