OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "content/renderer/media/android/webmediaplayer_android.h" | 5 #include "content/renderer/media/android/webmediaplayer_android.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
272 url_ = url; | 272 url_ = url; |
273 GURL first_party_url = frame_->document().firstPartyForCookies(); | 273 GURL first_party_url = frame_->document().firstPartyForCookies(); |
274 proxy_->Initialize(player_id_, url, source_type_, first_party_url); | 274 proxy_->Initialize(player_id_, url, source_type_, first_party_url); |
275 if (manager_->IsInFullscreen(frame_)) | 275 if (manager_->IsInFullscreen(frame_)) |
276 proxy_->EnterFullscreen(player_id_); | 276 proxy_->EnterFullscreen(player_id_); |
277 | 277 |
278 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading); | 278 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading); |
279 UpdateReadyState(WebMediaPlayer::ReadyStateHaveNothing); | 279 UpdateReadyState(WebMediaPlayer::ReadyStateHaveNothing); |
280 } | 280 } |
281 | 281 |
282 void WebMediaPlayerAndroid::DidLoadMediaInfo( | 282 void WebMediaPlayerAndroid::DidLoadMediaInfo( |
scherkus (not reviewing)
2013/09/13 16:04:47
considering this is a callback, are we sure HTMLMe
Jinsuk Kim
2013/09/16 02:20:18
Thanks for catching it. Changed to make sure it ha
| |
283 MediaInfoLoader::Status status) { | 283 MediaInfoLoader::Status status) { |
284 DCHECK(!media_source_delegate_); | 284 DCHECK(!media_source_delegate_); |
285 if (status == MediaInfoLoader::kFailed) { | 285 if (status == MediaInfoLoader::kFailed) { |
286 info_loader_.reset(); | 286 info_loader_.reset(); |
287 UpdateNetworkState(WebMediaPlayer::NetworkStateNetworkError); | 287 UpdateNetworkState(WebMediaPlayer::NetworkStateNetworkError); |
288 return; | 288 return; |
289 } | 289 } |
290 | 290 |
291 has_media_info_ = true; | 291 has_media_info_ = true; |
292 if (has_media_metadata_ && | 292 if (has_media_metadata_ && |
293 ready_state_ != WebMediaPlayer::ReadyStateHaveEnoughData) { | 293 ready_state_ != WebMediaPlayer::ReadyStateHaveEnoughData) { |
294 UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata); | 294 UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata); |
295 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); | 295 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); |
296 } | 296 } |
297 // Android doesn't start fetching resources until an implementation-defined | |
298 // event (e.g. playback request) occurs. Sets to the network state to IDLE. | |
299 UpdateNetworkState(WebMediaPlayer::NetworkStateIdle); | |
qinmin
2013/09/03 14:22:46
this is an optional step in HTML5 spec, do we real
Jinsuk Kim
2013/09/04 01:32:03
Though optional, I see benefit in having this - it
qinmin
2013/09/04 14:10:12
can you run all the layout test with content shell
Jinsuk Kim
2013/09/13 05:50:06
Ran the tests and confirmed there's no regression.
| |
297 } | 300 } |
298 | 301 |
299 void WebMediaPlayerAndroid::play() { | 302 void WebMediaPlayerAndroid::play() { |
300 #if defined(GOOGLE_TV) | 303 #if defined(GOOGLE_TV) |
301 if (hasVideo() && needs_external_surface_ && | 304 if (hasVideo() && needs_external_surface_ && |
302 !manager_->IsInFullscreen(frame_)) { | 305 !manager_->IsInFullscreen(frame_)) { |
303 DCHECK(!needs_establish_peer_); | 306 DCHECK(!needs_establish_peer_); |
304 proxy_->RequestExternalSurface(player_id_, last_computed_rect_); | 307 proxy_->RequestExternalSurface(player_id_, last_computed_rect_); |
305 } | 308 } |
306 if (audio_renderer_ && paused()) | 309 if (audio_renderer_ && paused()) |
307 audio_renderer_->Play(); | 310 audio_renderer_->Play(); |
308 #endif | 311 #endif |
309 if (hasVideo() && needs_establish_peer_) | 312 if (hasVideo() && needs_establish_peer_) |
310 EstablishSurfaceTexturePeer(); | 313 EstablishSurfaceTexturePeer(); |
311 | 314 |
312 if (paused()) | 315 if (paused()) |
313 proxy_->Start(player_id_); | 316 proxy_->Start(player_id_); |
314 UpdatePlayingState(true); | 317 UpdatePlayingState(true); |
318 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading); | |
315 } | 319 } |
316 | 320 |
317 void WebMediaPlayerAndroid::pause() { | 321 void WebMediaPlayerAndroid::pause() { |
318 #if defined(GOOGLE_TV) | 322 #if defined(GOOGLE_TV) |
319 if (audio_renderer_ && !paused()) | 323 if (audio_renderer_ && !paused()) |
320 audio_renderer_->Pause(); | 324 audio_renderer_->Pause(); |
321 #endif | 325 #endif |
322 proxy_->Pause(player_id_); | 326 proxy_->Pause(player_id_); |
323 UpdatePlayingState(false); | 327 UpdatePlayingState(false); |
324 } | 328 } |
(...skipping 853 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1178 | 1182 |
1179 void WebMediaPlayerAndroid::exitFullscreen() { | 1183 void WebMediaPlayerAndroid::exitFullscreen() { |
1180 proxy_->ExitFullscreen(player_id_); | 1184 proxy_->ExitFullscreen(player_id_); |
1181 } | 1185 } |
1182 | 1186 |
1183 bool WebMediaPlayerAndroid::canEnterFullscreen() const { | 1187 bool WebMediaPlayerAndroid::canEnterFullscreen() const { |
1184 return manager_->CanEnterFullscreen(frame_); | 1188 return manager_->CanEnterFullscreen(frame_); |
1185 } | 1189 } |
1186 | 1190 |
1187 } // namespace content | 1191 } // namespace content |
OLD | NEW |