Hi all,

I'm experiencing something very strange with my JavaFX clojure application. What the application actually is about is not super important. What is important is the fact that I'm having a different experience when I run it via `lein run` (or in fact `lein trampoline run`), than when I run the created uberjar (via `lein uberjar`).

The difference is the following:

In my `-start` method I'm creating a MediaPlayer object (with a .wav resource), and setting its cycleCount to INDEFINITE, which is to say that is will keep repeating the audio file forever. That's all fine and dandy and it does work as expected when run through lein. However, the exact same code in the uberjar plays the file once and then it stops! The game carries on as usual with no exceptions or anything like that...It's only the music that stops!

Now, before someone says that the MediaPlayer object has been GC'ed (as indicated by [1], [2] & [3]), I should point out that I am able to restart the music (by pressing 'M)' after it has stopped and while the program is running normally. The only thing that the KeyCode handler for M is doing calling `.play` or `.stop` on the original MediaPlayer object i created at the very start. In other words, I'm not creating any new MediaPlayer objects anywhere else other than the `-start` method. Unless I'm missing something, i shouldn't be able to restart the music if the MediaPlayer object had been GC'ed, right?

I'm not sure if it plays any role but the MediaPlayer object lives inside a promise, which again is delivered in the `-start` method, right before the javaFX Scene is shown. So the controls that need access to that MediaPlayer object (like the <M> handler mentioned earlier), go through that promise to get it. I only did that because i want to have it as a global in that ns, but at the same time i can't just `def` it because the javaFX toolkit is not initialised at compile time. So it's either going to be a `promise` or a `delay`. In any case, I'm really not sure how/why this would be an issue - I'm just throwing it out there as an 'interesting' complication in case I'm wrong.

Other than that, everything seems to work as expected, which is the same as with `lein run`. Feel free to drop suggestions, and/or brainstorm ideas. I could even provide the project in a zip if you would like to experience it yourself.

Thanks in advance...

Kind regards,

Dimitris

[1]: https://stackoverflow.com/questions/29870368/javafx-mediaplayer-music-stops-after-10-seconds

[2]: https://stackoverflow.com/questions/6241687/mediaplayer-stop-playing-after-about-5-seconds

[3]: https://stackoverflow.com/questions/30789973/javafx-mediaplayer-stops-when-file-isnt-complete

Mine stops after the first cycle every time (which is between 15-16 seconds)





--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to