我正在寻找一个易于编程的库,用于通过 clojure 函数不频繁地播放声音(通知等)。
编辑:像这样
(use 'my.sound.lib')
(play-file "filename")
(beep-loudly)
(bark-like-a-dog)
...
最佳答案
好的,现在的问题包括 API 愿望 list ...;-)
您可以使用JLayer用于在 JVM 上播放 MP3。在 Ubuntu 上,它打包为 libjlayer-java。 Java中有一个简单的使用示例here 。 Clojure 包装器:
(defn play-file [filename & opts]
(let [fis (java.io.FileInputStream. filename)
bis (java.io.BufferedInputStream. fis)
player (javazoom.jl.player.Player. bis)]
(if-let [synchronously (first opts)]
(doto player
(.play)
(.close))
(.start (Thread. #(doto player (.play) (.close)))))))
使用 (play-file "/path/to/file.mp3")
在单独的线程中播放 mp3 Fly,(play-file "/path/to/file.mp3"true)
如果您希望在当前线程上播放它。根据您的喜好进行调整。提供您自己的响亮的蜂鸣声和狗叫声 mp3。 ;-)
对于加载蜂鸣声等,您还可以使用 MIDI...也许这个 blog entry如果您选择尝试,将会很有帮助。
另外,我原来答案中的链接可能对您的调整仍然有帮助:Java Sound Resources: Links .
关于clojure - 用于播放声音的 Clojure 友好库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2096736/