2009/7/28 verec <jeanfrancois.brouil...@googlemail.com>:
>
> Here's a simple translation of my java production code (tested on OSX/
> Vista/XP, java 1.5 & 6)
> The gotcha is to forget the line listener and never dispose the
> resources.
> When I first tried without it, it worked perfectly on OS X  but
> stacked sound threads upon sound threads on XP.
>
> This very same (java) code has been tested with: .wav. .aiff, .aif.
> and .au and works fine :-)
>
> So here's my clojure attempt:

That's a useful example :)

I removed some of the imports that aren't being used:

(ns sound-tests
 (:import
  (javax.sound.sampled AudioSystem LineEvent$Type LineListener)
  (java.net URL)))

(defn simple-play
 [url]
 (let [stream (AudioSystem/getAudioInputStream url)
       clip   (AudioSystem/getClip)]
    (.addLineListener clip
      (proxy[LineListener] []
        (update [event]
          (when (and event
                     (= (.getType event)
                        (LineEvent$Type/STOP)))
             (.close clip)
             (.close stream)))))
    (try
      (.open clip stream)
      (.start clip)
      (catch Exception e nil))))

(simple-play (URL.
"file:///Developer/Examples/Java/Sound/JavaSoundDemo/audio/1-welcome.wav"))

-- 
Michael Wood <esiot...@gmail.com>

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to