clojure - 用于播放声音的 Clojure 友好库

标签 clojure audio

我正在寻找一个易于编程的库,用于通过 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/

相关文章:

recursion - 使用 Spectre 递归地改变 map 中的值

clojure - 在 clojure 中运行跷跷板和泛音库

arrays - 使用 java 原始数组的 clojure 代码比 scala 版本慢 70 倍

clojure - 无法在此服务器请求中解析出 EDN

mysql - 从 clojure 连接到 mysql 服务器

python - Pygame,声音不播放

linux - 在另一个声音文件中查找一个声音文件

java - 重复的音频剪辑无法播放 - Java

ios - 在 iOS 中按下特定按钮时播放特定声音

audio - XAudio2,启动/停止循环?