| 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 #include "media/base/android/media_player_bridge.h" | 5 #include "media/base/android/media_player_bridge.h" |
| 6 | 6 |
| 7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
| 8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 MediaPlayerManager* manager, | 30 MediaPlayerManager* manager, |
| 31 const RequestMediaResourcesCB& request_media_resources_cb, | 31 const RequestMediaResourcesCB& request_media_resources_cb, |
| 32 const GURL& frame_url, | 32 const GURL& frame_url, |
| 33 bool allow_credentials) | 33 bool allow_credentials) |
| 34 : MediaPlayerAndroid(player_id, | 34 : MediaPlayerAndroid(player_id, |
| 35 manager, | 35 manager, |
| 36 request_media_resources_cb, | 36 request_media_resources_cb, |
| 37 frame_url), | 37 frame_url), |
| 38 prepared_(false), | 38 prepared_(false), |
| 39 pending_play_(false), | 39 pending_play_(false), |
| 40 should_seek_on_prepare_(false), |
| 40 url_(url), | 41 url_(url), |
| 41 first_party_for_cookies_(first_party_for_cookies), | 42 first_party_for_cookies_(first_party_for_cookies), |
| 42 user_agent_(user_agent), | 43 user_agent_(user_agent), |
| 43 hide_url_log_(hide_url_log), | 44 hide_url_log_(hide_url_log), |
| 44 width_(0), | 45 width_(0), |
| 45 height_(0), | 46 height_(0), |
| 46 can_pause_(true), | 47 can_pause_(true), |
| 47 can_seek_forward_(true), | 48 can_seek_forward_(true), |
| 48 can_seek_backward_(true), | 49 can_seek_backward_(true), |
| 49 volume_(-1.0), | 50 volume_(-1.0), |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 if (!prepared_) | 331 if (!prepared_) |
| 331 return height_; | 332 return height_; |
| 332 JNIEnv* env = base::android::AttachCurrentThread(); | 333 JNIEnv* env = base::android::AttachCurrentThread(); |
| 333 return Java_MediaPlayerBridge_getVideoHeight( | 334 return Java_MediaPlayerBridge_getVideoHeight( |
| 334 env, j_media_player_bridge_.obj()); | 335 env, j_media_player_bridge_.obj()); |
| 335 } | 336 } |
| 336 | 337 |
| 337 void MediaPlayerBridge::SeekTo(base::TimeDelta timestamp) { | 338 void MediaPlayerBridge::SeekTo(base::TimeDelta timestamp) { |
| 338 // Record the time to seek when OnMediaPrepared() is called. | 339 // Record the time to seek when OnMediaPrepared() is called. |
| 339 pending_seek_ = timestamp; | 340 pending_seek_ = timestamp; |
| 341 should_seek_on_prepare_ = true; |
| 340 | 342 |
| 341 if (j_media_player_bridge_.is_null()) | 343 if (j_media_player_bridge_.is_null()) |
| 342 Prepare(); | 344 Prepare(); |
| 343 else if (prepared_) | 345 else if (prepared_) |
| 344 SeekInternal(timestamp); | 346 SeekInternal(timestamp); |
| 345 } | 347 } |
| 346 | 348 |
| 347 base::TimeDelta MediaPlayerBridge::GetCurrentTime() { | 349 base::TimeDelta MediaPlayerBridge::GetCurrentTime() { |
| 348 if (!prepared_) | 350 if (!prepared_) |
| 349 return pending_seek_; | 351 return pending_seek_; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 360 return base::TimeDelta::FromMilliseconds( | 362 return base::TimeDelta::FromMilliseconds( |
| 361 Java_MediaPlayerBridge_getDuration( | 363 Java_MediaPlayerBridge_getDuration( |
| 362 env, j_media_player_bridge_.obj())); | 364 env, j_media_player_bridge_.obj())); |
| 363 } | 365 } |
| 364 | 366 |
| 365 void MediaPlayerBridge::Release() { | 367 void MediaPlayerBridge::Release() { |
| 366 if (j_media_player_bridge_.is_null()) | 368 if (j_media_player_bridge_.is_null()) |
| 367 return; | 369 return; |
| 368 | 370 |
| 369 time_update_timer_.Stop(); | 371 time_update_timer_.Stop(); |
| 370 if (prepared_) | 372 if (prepared_) { |
| 371 pending_seek_ = GetCurrentTime(); | 373 pending_seek_ = GetCurrentTime(); |
| 374 should_seek_on_prepare_ = true; |
| 375 } |
| 376 |
| 372 prepared_ = false; | 377 prepared_ = false; |
| 373 pending_play_ = false; | 378 pending_play_ = false; |
| 374 SetVideoSurface(gfx::ScopedJavaSurface()); | 379 SetVideoSurface(gfx::ScopedJavaSurface()); |
| 375 JNIEnv* env = base::android::AttachCurrentThread(); | 380 JNIEnv* env = base::android::AttachCurrentThread(); |
| 376 Java_MediaPlayerBridge_release(env, j_media_player_bridge_.obj()); | 381 Java_MediaPlayerBridge_release(env, j_media_player_bridge_.obj()); |
| 377 j_media_player_bridge_.Reset(); | 382 j_media_player_bridge_.Reset(); |
| 378 DetachListener(); | 383 DetachListener(); |
| 379 } | 384 } |
| 380 | 385 |
| 381 void MediaPlayerBridge::SetVolume(double volume) { | 386 void MediaPlayerBridge::SetVolume(double volume) { |
| (...skipping 26 matching lines...) Expand all Loading... |
| 408 | 413 |
| 409 void MediaPlayerBridge::OnMediaPrepared() { | 414 void MediaPlayerBridge::OnMediaPrepared() { |
| 410 if (j_media_player_bridge_.is_null()) | 415 if (j_media_player_bridge_.is_null()) |
| 411 return; | 416 return; |
| 412 | 417 |
| 413 prepared_ = true; | 418 prepared_ = true; |
| 414 duration_ = GetDuration(); | 419 duration_ = GetDuration(); |
| 415 | 420 |
| 416 // If media player was recovered from a saved state, consume all the pending | 421 // If media player was recovered from a saved state, consume all the pending |
| 417 // events. | 422 // events. |
| 418 PendingSeekInternal(pending_seek_); | 423 if (should_seek_on_prepare_) { |
| 424 PendingSeekInternal(pending_seek_); |
| 425 pending_seek_ = base::TimeDelta::FromMilliseconds(0); |
| 426 should_seek_on_prepare_ = false; |
| 427 } |
| 419 | 428 |
| 420 if (pending_play_) { | 429 if (pending_play_) { |
| 421 StartInternal(); | 430 StartInternal(); |
| 422 pending_play_ = false; | 431 pending_play_ = false; |
| 423 } | 432 } |
| 424 | 433 |
| 425 UpdateAllowedOperations(); | 434 UpdateAllowedOperations(); |
| 426 manager()->OnMediaMetadataChanged( | 435 manager()->OnMediaMetadataChanged( |
| 427 player_id(), duration_, width_, height_, true); | 436 player_id(), duration_, width_, height_, true); |
| 428 } | 437 } |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 516 | 525 |
| 517 GURL MediaPlayerBridge::GetUrl() { | 526 GURL MediaPlayerBridge::GetUrl() { |
| 518 return url_; | 527 return url_; |
| 519 } | 528 } |
| 520 | 529 |
| 521 GURL MediaPlayerBridge::GetFirstPartyForCookies() { | 530 GURL MediaPlayerBridge::GetFirstPartyForCookies() { |
| 522 return first_party_for_cookies_; | 531 return first_party_for_cookies_; |
| 523 } | 532 } |
| 524 | 533 |
| 525 } // namespace media | 534 } // namespace media |
| OLD | NEW |