Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(176)

Side by Side Diff: media/base/android/media_player_bridge.cc

Issue 896673003: Propagate audible state from player to the containing tab (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 const int duration_ms = 348 const int duration_ms =
349 Java_MediaPlayerBridge_getDuration(env, j_media_player_bridge_.obj()); 349 Java_MediaPlayerBridge_getDuration(env, j_media_player_bridge_.obj());
350 return duration_ms < 0 ? media::kInfiniteDuration() 350 return duration_ms < 0 ? media::kInfiniteDuration()
351 : base::TimeDelta::FromMilliseconds(duration_ms); 351 : base::TimeDelta::FromMilliseconds(duration_ms);
352 } 352 }
353 353
354 void MediaPlayerBridge::Release() { 354 void MediaPlayerBridge::Release() {
355 if (j_media_player_bridge_.is_null()) 355 if (j_media_player_bridge_.is_null())
356 return; 356 return;
357 357
358 SetAudible(false);
359
358 time_update_timer_.Stop(); 360 time_update_timer_.Stop();
359 if (prepared_) { 361 if (prepared_) {
360 pending_seek_ = GetCurrentTime(); 362 pending_seek_ = GetCurrentTime();
361 should_seek_on_prepare_ = true; 363 should_seek_on_prepare_ = true;
362 } 364 }
363 365
364 prepared_ = false; 366 prepared_ = false;
365 pending_play_ = false; 367 pending_play_ = false;
366 SetVideoSurface(gfx::ScopedJavaSurface()); 368 SetVideoSurface(gfx::ScopedJavaSurface());
367 JNIEnv* env = base::android::AttachCurrentThread(); 369 JNIEnv* env = base::android::AttachCurrentThread();
368 Java_MediaPlayerBridge_release(env, j_media_player_bridge_.obj()); 370 Java_MediaPlayerBridge_release(env, j_media_player_bridge_.obj());
369 j_media_player_bridge_.Reset(); 371 j_media_player_bridge_.Reset();
370 DetachListener(); 372 DetachListener();
371 } 373 }
372 374
373 void MediaPlayerBridge::SetVolume(double volume) { 375 void MediaPlayerBridge::SetVolume(double volume) {
qinmin 2015/02/03 20:33:24 should we also call setAudible() here?
Tima Vaisburd 2015/02/03 23:53:05 Yes, I just want to see it called, I haven't seen
Tima Vaisburd 2015/02/04 03:04:48 Done.
374 if (j_media_player_bridge_.is_null()) { 376 if (j_media_player_bridge_.is_null()) {
375 volume_ = volume; 377 volume_ = volume;
376 return; 378 return;
377 } 379 }
378 380
379 JNIEnv* env = base::android::AttachCurrentThread(); 381 JNIEnv* env = base::android::AttachCurrentThread();
380 CHECK(env); 382 CHECK(env);
381 Java_MediaPlayerBridge_setVolume( 383 Java_MediaPlayerBridge_setVolume(
382 env, j_media_player_bridge_.obj(), volume); 384 env, j_media_player_bridge_.obj(), volume);
383 } 385 }
384 386
385 void MediaPlayerBridge::OnVideoSizeChanged(int width, int height) { 387 void MediaPlayerBridge::OnVideoSizeChanged(int width, int height) {
386 width_ = width; 388 width_ = width;
387 height_ = height; 389 height_ = height;
388 MediaPlayerAndroid::OnVideoSizeChanged(width, height); 390 MediaPlayerAndroid::OnVideoSizeChanged(width, height);
389 } 391 }
390 392
391 void MediaPlayerBridge::OnPlaybackComplete() { 393 void MediaPlayerBridge::OnPlaybackComplete() {
394 SetAudible(false);
392 time_update_timer_.Stop(); 395 time_update_timer_.Stop();
393 MediaPlayerAndroid::OnPlaybackComplete(); 396 MediaPlayerAndroid::OnPlaybackComplete();
394 } 397 }
395 398
396 void MediaPlayerBridge::OnMediaInterrupted() { 399 void MediaPlayerBridge::OnMediaInterrupted() {
400 SetAudible(false);
397 time_update_timer_.Stop(); 401 time_update_timer_.Stop();
398 MediaPlayerAndroid::OnMediaInterrupted(); 402 MediaPlayerAndroid::OnMediaInterrupted();
399 } 403 }
400 404
401 void MediaPlayerBridge::OnMediaPrepared() { 405 void MediaPlayerBridge::OnMediaPrepared() {
402 if (j_media_player_bridge_.is_null()) 406 if (j_media_player_bridge_.is_null())
403 return; 407 return;
404 408
405 prepared_ = true; 409 prepared_ = true;
406 duration_ = GetDuration(); 410 duration_ = GetDuration();
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 450
447 void MediaPlayerBridge::StartInternal() { 451 void MediaPlayerBridge::StartInternal() {
448 JNIEnv* env = base::android::AttachCurrentThread(); 452 JNIEnv* env = base::android::AttachCurrentThread();
449 Java_MediaPlayerBridge_start(env, j_media_player_bridge_.obj()); 453 Java_MediaPlayerBridge_start(env, j_media_player_bridge_.obj());
450 if (!time_update_timer_.IsRunning()) { 454 if (!time_update_timer_.IsRunning()) {
451 time_update_timer_.Start( 455 time_update_timer_.Start(
452 FROM_HERE, 456 FROM_HERE,
453 base::TimeDelta::FromMilliseconds(kTimeUpdateInterval), 457 base::TimeDelta::FromMilliseconds(kTimeUpdateInterval),
454 this, &MediaPlayerBridge::OnTimeUpdateTimerFired); 458 this, &MediaPlayerBridge::OnTimeUpdateTimerFired);
455 } 459 }
460
461 SetAudible(volume_ > 0); // need to check the volume
456 } 462 }
457 463
458 void MediaPlayerBridge::PauseInternal() { 464 void MediaPlayerBridge::PauseInternal() {
465 SetAudible(false);
466
459 JNIEnv* env = base::android::AttachCurrentThread(); 467 JNIEnv* env = base::android::AttachCurrentThread();
460 Java_MediaPlayerBridge_pause(env, j_media_player_bridge_.obj()); 468 Java_MediaPlayerBridge_pause(env, j_media_player_bridge_.obj());
461 time_update_timer_.Stop(); 469 time_update_timer_.Stop();
462 } 470 }
463 471
464 void MediaPlayerBridge::PendingSeekInternal(const base::TimeDelta& time) { 472 void MediaPlayerBridge::PendingSeekInternal(const base::TimeDelta& time) {
465 SeekInternal(time); 473 SeekInternal(time);
466 } 474 }
467 475
468 void MediaPlayerBridge::SeekInternal(base::TimeDelta time) { 476 void MediaPlayerBridge::SeekInternal(base::TimeDelta time) {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 518
511 GURL MediaPlayerBridge::GetUrl() { 519 GURL MediaPlayerBridge::GetUrl() {
512 return url_; 520 return url_;
513 } 521 }
514 522
515 GURL MediaPlayerBridge::GetFirstPartyForCookies() { 523 GURL MediaPlayerBridge::GetFirstPartyForCookies() {
516 return first_party_for_cookies_; 524 return first_party_for_cookies_;
517 } 525 }
518 526
519 } // namespace media 527 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698