OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef MEDIA_BASE_ANDROID_MEDIA_PLAYER_BRIDGE_H_ | 5 #ifndef MEDIA_BASE_ANDROID_MEDIA_PLAYER_BRIDGE_H_ |
6 #define MEDIA_BASE_ANDROID_MEDIA_PLAYER_BRIDGE_H_ | 6 #define MEDIA_BASE_ANDROID_MEDIA_PLAYER_BRIDGE_H_ |
7 | 7 |
8 #include <jni.h> | 8 #include <jni.h> |
9 #include <map> | 9 #include <map> |
10 #include <string> | 10 #include <string> |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 // Callback when buffering has changed. Args: player ID, percentage | 49 // Callback when buffering has changed. Args: player ID, percentage |
50 // of the media. | 50 // of the media. |
51 typedef base::Callback<void(int, int)> BufferingUpdateCB; | 51 typedef base::Callback<void(int, int)> BufferingUpdateCB; |
52 | 52 |
53 // Callback when player got prepared. Args: player ID, duration of the media. | 53 // Callback when player got prepared. Args: player ID, duration of the media. |
54 typedef base::Callback<void(int, base::TimeDelta)> MediaPreparedCB; | 54 typedef base::Callback<void(int, base::TimeDelta)> MediaPreparedCB; |
55 | 55 |
56 // Callbacks when seek completed. Args: player ID, current time. | 56 // Callbacks when seek completed. Args: player ID, current time. |
57 typedef base::Callback<void(int, base::TimeDelta)> SeekCompleteCB; | 57 typedef base::Callback<void(int, base::TimeDelta)> SeekCompleteCB; |
58 | 58 |
| 59 // Callbacks when seek completed. Args: player ID |
| 60 typedef base::Callback<void(int)> MediaInterruptedCB; |
| 61 |
59 // Callbacks when playback completed. Args: player ID. | 62 // Callbacks when playback completed. Args: player ID. |
60 typedef base::Callback<void(int)> PlaybackCompleteCB; | 63 typedef base::Callback<void(int)> PlaybackCompleteCB; |
61 | 64 |
62 // Callback when time update messages need to be sent. Args: player ID, | 65 // Callback when time update messages need to be sent. Args: player ID, |
63 // current time. | 66 // current time. |
64 typedef base::Callback<void(int, base::TimeDelta)> TimeUpdateCB; | 67 typedef base::Callback<void(int, base::TimeDelta)> TimeUpdateCB; |
65 | 68 |
66 static bool RegisterMediaPlayerBridge(JNIEnv* env); | 69 static bool RegisterMediaPlayerBridge(JNIEnv* env); |
67 | 70 |
68 // Construct a MediaPlayerBridge object with all the needed media player | 71 // Construct a MediaPlayerBridge object with all the needed media player |
69 // callbacks. This object needs to call |manager|'s RequestMediaResources() | 72 // callbacks. This object needs to call |manager|'s RequestMediaResources() |
70 // before decoding the media stream. This allows |manager| to track | 73 // before decoding the media stream. This allows |manager| to track |
71 // unused resources and free them when needed. On the other hand, it needs | 74 // unused resources and free them when needed. On the other hand, it needs |
72 // to call ReleaseMediaResources() when it is done with decoding. | 75 // to call ReleaseMediaResources() when it is done with decoding. |
73 MediaPlayerBridge(int player_id, | 76 MediaPlayerBridge(int player_id, |
74 const std::string& url, | 77 const std::string& url, |
75 const std::string& first_party_for_cookies, | 78 const std::string& first_party_for_cookies, |
76 CookieGetter* cookie_getter, | 79 CookieGetter* cookie_getter, |
77 bool hide_url_log, | 80 bool hide_url_log, |
78 MediaPlayerBridgeManager* manager, | 81 MediaPlayerBridgeManager* manager, |
79 const MediaErrorCB& media_error_cb, | 82 const MediaErrorCB& media_error_cb, |
80 const VideoSizeChangedCB& video_size_changed_cb, | 83 const VideoSizeChangedCB& video_size_changed_cb, |
81 const BufferingUpdateCB& buffering_update_cb, | 84 const BufferingUpdateCB& buffering_update_cb, |
82 const MediaPreparedCB& media_prepared_cb, | 85 const MediaPreparedCB& media_prepared_cb, |
83 const PlaybackCompleteCB& playback_complete_cb, | 86 const PlaybackCompleteCB& playback_complete_cb, |
84 const SeekCompleteCB& seek_complete_cb, | 87 const SeekCompleteCB& seek_complete_cb, |
85 const TimeUpdateCB& time_update_cb); | 88 const TimeUpdateCB& time_update_cb, |
| 89 const MediaInterruptedCB& media_interrupted_cb); |
86 ~MediaPlayerBridge(); | 90 ~MediaPlayerBridge(); |
87 | 91 |
88 typedef std::map<std::string, std::string> HeadersMap; | 92 typedef std::map<std::string, std::string> HeadersMap; |
89 | 93 |
90 void SetVideoSurface(jobject surface); | 94 void SetVideoSurface(jobject surface); |
91 | 95 |
92 // Start playing the media. | 96 // Start playing the media. |
93 void Start(); | 97 void Start(); |
94 | 98 |
95 // Pause the media. | 99 // Pause the media. |
(...skipping 24 matching lines...) Expand all Loading... |
120 void DoTimeUpdate(); | 124 void DoTimeUpdate(); |
121 | 125 |
122 // Called by the MediaPlayerListener and mirrored to corresponding | 126 // Called by the MediaPlayerListener and mirrored to corresponding |
123 // callbacks. | 127 // callbacks. |
124 void OnMediaError(int error_type); | 128 void OnMediaError(int error_type); |
125 void OnVideoSizeChanged(int width, int height); | 129 void OnVideoSizeChanged(int width, int height); |
126 void OnBufferingUpdate(int percent); | 130 void OnBufferingUpdate(int percent); |
127 void OnPlaybackComplete(); | 131 void OnPlaybackComplete(); |
128 void OnSeekComplete(); | 132 void OnSeekComplete(); |
129 void OnMediaPrepared(); | 133 void OnMediaPrepared(); |
| 134 void OnMediaInterrupted(); |
130 | 135 |
131 // Prepare the player for playback, asynchronously. When succeeds, | 136 // Prepare the player for playback, asynchronously. When succeeds, |
132 // OnMediaPrepared() will be called. Otherwise, OnMediaError() will | 137 // OnMediaPrepared() will be called. Otherwise, OnMediaError() will |
133 // be called with an error type. | 138 // be called with an error type. |
134 void Prepare(); | 139 void Prepare(); |
135 | 140 |
136 // Callback function passed to |cookies_retriever_|. | 141 // Callback function passed to |cookies_retriever_|. |
137 void GetCookiesCallback(const std::string& cookies); | 142 void GetCookiesCallback(const std::string& cookies); |
138 | 143 |
139 int player_id() { return player_id_; } | 144 int player_id() { return player_id_; } |
(...skipping 11 matching lines...) Expand all Loading... |
151 void PauseInternal(); | 156 void PauseInternal(); |
152 void SeekInternal(base::TimeDelta time); | 157 void SeekInternal(base::TimeDelta time); |
153 | 158 |
154 // Callbacks when events are received. | 159 // Callbacks when events are received. |
155 MediaErrorCB media_error_cb_; | 160 MediaErrorCB media_error_cb_; |
156 VideoSizeChangedCB video_size_changed_cb_; | 161 VideoSizeChangedCB video_size_changed_cb_; |
157 BufferingUpdateCB buffering_update_cb_; | 162 BufferingUpdateCB buffering_update_cb_; |
158 MediaPreparedCB media_prepared_cb_; | 163 MediaPreparedCB media_prepared_cb_; |
159 PlaybackCompleteCB playback_complete_cb_; | 164 PlaybackCompleteCB playback_complete_cb_; |
160 SeekCompleteCB seek_complete_cb_; | 165 SeekCompleteCB seek_complete_cb_; |
| 166 MediaInterruptedCB media_interrupted_cb_; |
161 | 167 |
162 // Callbacks when timer events are received. | 168 // Callbacks when timer events are received. |
163 TimeUpdateCB time_update_cb_; | 169 TimeUpdateCB time_update_cb_; |
164 | 170 |
165 // Player ID assigned to this player. | 171 // Player ID assigned to this player. |
166 int player_id_; | 172 int player_id_; |
167 | 173 |
168 // Whether the player is prepared for playback. | 174 // Whether the player is prepared for playback. |
169 bool prepared_; | 175 bool prepared_; |
170 | 176 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 | 221 |
216 // Listener object that listens to all the media player events. | 222 // Listener object that listens to all the media player events. |
217 MediaPlayerListener listener_; | 223 MediaPlayerListener listener_; |
218 | 224 |
219 DISALLOW_COPY_AND_ASSIGN(MediaPlayerBridge); | 225 DISALLOW_COPY_AND_ASSIGN(MediaPlayerBridge); |
220 }; | 226 }; |
221 | 227 |
222 } // namespace media | 228 } // namespace media |
223 | 229 |
224 #endif // MEDIA_BASE_ANDROID_MEDIA_PLAYER_BRIDGE_H_ | 230 #endif // MEDIA_BASE_ANDROID_MEDIA_PLAYER_BRIDGE_H_ |
OLD | NEW |