On 22/04/14 18:36, leledumbo wrote:
My question is if it can be done without a java wrapper class as this
would make android programming much easier (unless I have misunderstood
your reply).
Perhaps I misunderstood your question in the first place. Could you instead
draw a diagram (flowchart?) and emphasize (red circle or something) the part
you wish to create?
Let's consider a Lazarus TTimer. You set its interval, assign a method
for the OnTimer event, and set enabled to True. Once the interval is
over, OnTimer will fire and call the assigned method. Note that we did
not touch the TTimer component's code.
Now to the java media player: You assign a pascal method to the
OnCompetion event (the question is how), and start the player
(pascal/jni). Once the song is over, OnCompletion will fire and call the
assigned pascal method.
Pascal/JNI pseudo code:
procedure Play;
begin
jmediaplayer.Oncompletion := @MyOnCompletion; // how?
jmediaplayer.start; // the actual code needs to get the jclass,
jmethodID and make the start call (no java code involved)
end;
procedure MyOnCompletion(AEnv: Penv; aObj: jObject)
begin
ShowMessage('Song has ended');
end;
I hope this is clearer.
Stephano
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal