Skip to content

Commit afee46d

Browse files
committed
create a handler to handle MediaPlayer operations on a separate thread
Signed-off-by: Umair Khan <[email protected]>
1 parent a2ce51c commit afee46d

File tree

1 file changed

+35
-0
lines changed
  • src/in/omerjerk/processing/video/android

1 file changed

+35
-0
lines changed

src/in/omerjerk/processing/video/android/Movie.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package in.omerjerk.processing.video.android;
22

3+
import android.os.Handler;
4+
import android.os.Looper;
5+
import android.os.Message;
36
import processing.core.PApplet;
47

58
public class Movie extends VideoBase implements MediaPlayerHandlerCallback {
69

10+
private MediaPlayerHandler handler;
11+
712
public interface MediaPlayerHandlerCallback {
813
public void start();
914
}
@@ -14,6 +19,14 @@ public Movie(PApplet parent) {
1419

1520
public Movie(PApplet parent, int width, int height) {
1621
super(parent);
22+
new Thread(new Runnable() {
23+
@Override
24+
public void run() {
25+
Looper.prepare();
26+
handler = new MediaPlayerHandler();
27+
Looper.loop();
28+
}
29+
}).start();
1730
}
1831

1932
@Override
@@ -22,4 +35,26 @@ public void onPause() {
2235

2336
@Override
2437
public void onResume() {}
38+
39+
private class MediaPlayerHandler extends Handler {
40+
41+
public static final int MSG_START_MEDIA_PLAYER = 0;
42+
43+
MediaPlayerHandlerCallback callback;
44+
45+
public void setCallback (MediaPlayerHandlerCallback cb) {
46+
this.callback = cb;
47+
}
48+
49+
@Override
50+
public void handleMessage(Message msg) {
51+
switch (msg.what) {
52+
case MSG_START_MEDIA_PLAYER:
53+
callback.start();
54+
break;
55+
default:
56+
break;
57+
}
58+
}
59+
}
2560
}

0 commit comments

Comments
 (0)