1
1
package in .omerjerk .processing .video .android ;
2
2
3
+ import java .io .IOException ;
4
+
5
+ import javax .xml .stream .events .StartDocument ;
6
+
3
7
import in .omerjerk .processing .video .android .callbacks .MediaPlayerHandlerCallback ;
8
+ import android .drm .DrmStore .Playback ;
4
9
import android .media .MediaMetadataRetriever ;
5
10
import android .media .MediaPlayer ;
11
+ import android .net .Uri ;
6
12
import android .os .Handler ;
7
13
import android .os .HandlerThread ;
8
14
import android .os .Looper ;
@@ -14,6 +20,8 @@ public class Movie extends VideoBase implements MediaPlayerHandlerCallback {
14
20
15
21
private MediaPlayerHandler handler ;
16
22
private MediaPlayer player ;
23
+
24
+ private boolean looping = false ;
17
25
18
26
public Movie (PApplet parent , String fileName ) {
19
27
super (parent );
@@ -27,7 +35,15 @@ public Movie(PApplet parent, String fileName) {
27
35
backgroundThread .start ();
28
36
handler = new MediaPlayerHandler (backgroundThread .getLooper ());
29
37
handler .setCallback (this );
30
- handler .sendMessage (handler .obtainMessage (MediaPlayerHandler .MSG_INIT_PLAYER ));
38
+ handler .sendMessage (handler .obtainMessage (MediaPlayerHandler .MSG_INIT_PLAYER , fileName ));
39
+ }
40
+
41
+ public void play () {
42
+ handler .sendMessage (handler .obtainMessage (MediaPlayerHandler .MSG_START_PLAYER ));
43
+ }
44
+
45
+ public void loop () {
46
+ looping = true ;
31
47
}
32
48
33
49
@ Override
@@ -56,7 +72,8 @@ public void setCallback (MediaPlayerHandlerCallback cb) {
56
72
public void handleMessage (Message msg ) {
57
73
switch (msg .what ) {
58
74
case MSG_INIT_PLAYER :
59
- callback .initPlayer ();
75
+ String fileName = (String ) msg .obj ;
76
+ callback .initPlayer (fileName );
60
77
break ;
61
78
case MSG_START_PLAYER :
62
79
callback .startPlayer ();
@@ -68,12 +85,20 @@ public void handleMessage(Message msg) {
68
85
}
69
86
70
87
@ Override
71
- public void initPlayer () {
88
+ public void initPlayer (String fileName ) {
72
89
player = new MediaPlayer ();
73
- player .setSurface (new Surface (mSurfaceTexture ));
90
+ try {
91
+ player .setDataSource (activity , Uri .parse (fileName ));
92
+ player .setSurface (new Surface (mSurfaceTexture ));
93
+ player .setLooping (looping );
94
+ player .prepare ();
95
+ } catch (Exception e ) {
96
+ e .printStackTrace ();
97
+ }
74
98
}
75
99
76
100
@ Override
77
101
public void startPlayer () {
102
+ player .start ();
78
103
}
79
104
}
0 commit comments