Chromium Code Reviews| Index: media/base/android/media_player_bridge.cc |
| diff --git a/media/base/android/media_player_bridge.cc b/media/base/android/media_player_bridge.cc |
| index a9bf7e42900a7528ce284ee442aa8771b468d65a..ed8854f1b688774a4f00eecca7f4790d88a368b7 100644 |
| --- a/media/base/android/media_player_bridge.cc |
| +++ b/media/base/android/media_player_bridge.cc |
| @@ -355,6 +355,8 @@ void MediaPlayerBridge::Release() { |
| if (j_media_player_bridge_.is_null()) |
| return; |
| + SetAudible(false); |
| + |
| time_update_timer_.Stop(); |
| if (prepared_) { |
| pending_seek_ = GetCurrentTime(); |
| @@ -371,15 +373,22 @@ void MediaPlayerBridge::Release() { |
| } |
| void MediaPlayerBridge::SetVolume(double volume) { |
| - if (j_media_player_bridge_.is_null()) { |
| - volume_ = volume; |
| + volume_ = volume; |
| + |
| + if (j_media_player_bridge_.is_null()) |
| return; |
| - } |
| JNIEnv* env = base::android::AttachCurrentThread(); |
| CHECK(env); |
| + |
| + // Update the audible state if we are playing. |
| + jboolean is_playing = Java_MediaPlayerBridge_isPlaying( |
| + env, j_media_player_bridge_.obj()); |
| + if (is_playing) |
| + SetAudible(volume_ > 0); |
|
Ted C
2015/02/07 00:07:15
do we really care about volume? It might be nice
Tima Vaisburd
2015/02/07 03:00:23
I think we do. This volume is unrelated to rocker
|
| + |
| Java_MediaPlayerBridge_setVolume( |
| - env, j_media_player_bridge_.obj(), volume); |
| + env, j_media_player_bridge_.obj(), volume_); |
| } |
| void MediaPlayerBridge::OnVideoSizeChanged(int width, int height) { |
| @@ -389,11 +398,13 @@ void MediaPlayerBridge::OnVideoSizeChanged(int width, int height) { |
| } |
| void MediaPlayerBridge::OnPlaybackComplete() { |
| + SetAudible(false); |
| time_update_timer_.Stop(); |
| MediaPlayerAndroid::OnPlaybackComplete(); |
| } |
| void MediaPlayerBridge::OnMediaInterrupted() { |
| + SetAudible(false); |
| time_update_timer_.Stop(); |
| MediaPlayerAndroid::OnMediaInterrupted(); |
| } |
| @@ -453,9 +464,13 @@ void MediaPlayerBridge::StartInternal() { |
| base::TimeDelta::FromMilliseconds(kTimeUpdateInterval), |
| this, &MediaPlayerBridge::OnTimeUpdateTimerFired); |
| } |
| + |
| + SetAudible(volume_ > 0); |
| } |
| void MediaPlayerBridge::PauseInternal() { |
| + SetAudible(false); |
| + |
| JNIEnv* env = base::android::AttachCurrentThread(); |
| Java_MediaPlayerBridge_pause(env, j_media_player_bridge_.obj()); |
| time_update_timer_.Stop(); |