diff --git a/playback/player/android/build.xml b/playback/player/android/build.xml
new file mode 100644
index 0000000000..4ef18c8f98
--- /dev/null
+++ b/playback/player/android/build.xml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/playback/player/android/jni/player.c b/playback/player/android/jni/player.c
index bdf8e312e0..fe7f29d9b4 100644
--- a/playback/player/android/jni/player.c
+++ b/playback/player/android/jni/player.c
@@ -161,11 +161,10 @@ on_error (GstPlayer * unused, GError * err, Player * player)
JNIEnv *env = get_jni_env ();
jstring error_msg;
- // FIXME
- error_msg = err ? (*env)->NewStringUTF (env, err->message) : NULL;
+ error_msg =(*env)->NewStringUTF (env, err->message);
(*env)->CallVoidMethod (env, player->java_player, on_error_method_id,
- error_msg);
+ err->code, error_msg);
if ((*env)->ExceptionCheck (env)) {
(*env)->ExceptionDescribe (env);
(*env)->ExceptionClear (env);
@@ -427,7 +426,7 @@ native_class_init (JNIEnv * env, jclass klass)
on_seek_finished_method_id =
(*env)->GetMethodID (env, klass, "onSeekFinished", "()V");
on_error_method_id =
- (*env)->GetMethodID (env, klass, "onError", "(Ljava/lang/String;)V");
+ (*env)->GetMethodID (env, klass, "onError", "(ILjava/lang/String;)V");
on_video_dimensions_changed_method_id =
(*env)->GetMethodID (env, klass, "onVideoDimensionsChanged", "(II)V");
diff --git a/playback/player/android/res/layout/main.xml b/playback/player/android/res/layout/main.xml
new file mode 100644
index 0000000000..b745d8069e
--- /dev/null
+++ b/playback/player/android/res/layout/main.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/playback/player/android/res/values/strings.xml b/playback/player/android/res/values/strings.xml
new file mode 100644
index 0000000000..9587e3c40c
--- /dev/null
+++ b/playback/player/android/res/values/strings.xml
@@ -0,0 +1,6 @@
+
+
+ GStreamer Play
+ Play
+ Pause
+
diff --git a/playback/player/android/src/org/freedesktop/gstreamer/Player.java b/playback/player/android/src/org/freedesktop/gstreamer/Player.java
index 862444ba03..993001a759 100644
--- a/playback/player/android/src/org/freedesktop/gstreamer/Player.java
+++ b/playback/player/android/src/org/freedesktop/gstreamer/Player.java
@@ -183,9 +183,14 @@ public class Player implements Closeable {
}
}
+ // Keep these in sync with gstplayer.h
+ private static final Error[] errorMap = {Error.FAILED};
+ public enum Error {
+ FAILED
+ }
+
public static interface ErrorListener {
- // FIXME: enums
- abstract void error(Player player, String errorMessage);
+ abstract void error(Player player, Error error, String errorMessage);
}
private ErrorListener errorListener;
@@ -193,9 +198,10 @@ public class Player implements Closeable {
errorListener = listener;
}
- private void onError(String errorMessage) {
+ private void onError(int errorCode, String errorMessage) {
if (errorListener != null) {
- errorListener.error(this, errorMessage);
+ Error error = errorMap[errorCode];
+ errorListener.error(this, error, errorMessage);
}
}