| Index: media/base/android/media_player_listener.cc | 
| diff --git a/media/base/android/media_player_listener.cc b/media/base/android/media_player_listener.cc | 
| index de1820190c7b8efe8d649e0ed0fd8f02d5a6f1e7..d64aac7b60761f69ac9e02006915a3f5e9122d11 100644 | 
| --- a/media/base/android/media_player_listener.cc | 
| +++ b/media/base/android/media_player_listener.cc | 
| @@ -35,9 +35,20 @@ void MediaPlayerListener::CreateMediaPlayerListener( | 
| jobject context, jobject media_player) { | 
| JNIEnv* env = AttachCurrentThread(); | 
| CHECK(env); | 
| +  j_media_player_listener_.Reset( | 
| +      Java_MediaPlayerListener_create( | 
| +          env, reinterpret_cast<intptr_t>(this), context, media_player)); | 
| +} | 
| + | 
|  | 
| -  Java_MediaPlayerListener_create( | 
| -      env, reinterpret_cast<intptr_t>(this), context, media_player); | 
| +void MediaPlayerListener::ReleaseMediaPlayerListenerResources() { | 
| +  JNIEnv* env = AttachCurrentThread(); | 
| +  CHECK(env); | 
| +  if (!j_media_player_listener_.is_null()) { | 
| +    Java_MediaPlayerListener_releaseResources( | 
| +        env, j_media_player_listener_.obj()); | 
| +  } | 
| +  j_media_player_listener_.Reset(); | 
| } | 
|  | 
| void MediaPlayerListener::OnMediaError( | 
| @@ -77,6 +88,12 @@ void MediaPlayerListener::OnMediaPrepared( | 
| &MediaPlayerBridge::OnMediaPrepared, media_player_)); | 
| } | 
|  | 
| +void MediaPlayerListener::OnMediaInterrupted( | 
| +    JNIEnv* /* env */, jobject /* obj */) { | 
| +  message_loop_->PostTask(FROM_HERE, base::Bind( | 
| +      &MediaPlayerBridge::OnMediaInterrupted, media_player_)); | 
| +} | 
| + | 
| bool MediaPlayerListener::RegisterMediaPlayerListener(JNIEnv* env) { | 
| bool ret = RegisterNativesImpl(env); | 
| DCHECK(g_MediaPlayerListener_clazz); | 
|  |