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

Unified Diff: media/base/android/media_player_bridge.cc

Issue 12625005: remove call to get android MediaPlayer class (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: moving getMetadata() call to java side Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
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 4ebde7dfbe42e12aeb1fe0d1f434d067d5642cc0..51e84ba4a2268cd4ccd3a49611b25c3b6191042b 100644
--- a/media/base/android/media_player_bridge.cc
+++ b/media/base/android/media_player_bridge.cc
@@ -328,34 +328,15 @@ void MediaPlayerBridge::GetMetadata() {
JNIEnv* env = AttachCurrentThread();
CHECK(env);
- ScopedJavaLocalRef<jclass> media_player_class(
- GetClass(env, "android/media/MediaPlayer"));
- jmethodID method = MethodID::Get<MethodID::TYPE_INSTANCE>(
- env, media_player_class.obj(), "getMetadata",
- "(ZZ)Landroid/media/Metadata;");
- ScopedJavaLocalRef<jobject> j_metadata(
- env, env->CallObjectMethod(
- j_media_player_.obj(), method, JNI_FALSE, JNI_FALSE));
+ ScopedJavaLocalRef<jbooleanArray> boolean_array =
+ Java_MediaPlayerBridge_getMetadata(env, j_media_player_.obj());
+ jboolean* bools = env->GetBooleanArrayElements(boolean_array.obj(), NULL);
CheckException(env);
- if (j_metadata.is_null())
- return;
- ScopedJavaLocalRef<jclass> metadata_class(
- GetClass(env, "android/media/Metadata"));
- jmethodID get_boolean = MethodID::Get<MethodID::TYPE_INSTANCE>(
- env, metadata_class.obj(), "getBoolean", "(I)Z");
- can_pause_ = env->CallBooleanMethod(j_metadata.obj(),
- get_boolean,
- kPauseAvailable);
- CheckException(env);
- can_seek_forward_ = env->CallBooleanMethod(j_metadata.obj(),
- get_boolean,
- kSeekBackwardAvailable);
- CheckException(env);
- can_seek_backward_ = env->CallBooleanMethod(j_metadata.obj(),
- get_boolean,
- kSeekForwardAvailable);
- CheckException(env);
+ can_pause_ = bools[0];
+ can_seek_forward_ = bools[1];
+ can_seek_backward_ = bools[2];
+ env->ReleaseBooleanArrayElements(boolean_array.obj(), bools, JNI_ABORT);
}
void MediaPlayerBridge::StartInternal() {

Powered by Google App Engine
This is Rietveld 408576698