Удобная библиотека для воспроизведения звуков - PullRequest
9 голосов
/ 19 января 2010

Я ищу легкую в программировании библиотеку для нечасто воспроизводимых звуков (уведомлений и т. П.) Из функции clojure.

изменить: как это

(use 'my.sound.lib') 
(play-file "filename")
(beep-loudly)
(bark-like-a-dog)
...

Ответы [ 2 ]

8 голосов
/ 19 января 2010

ОК, вопрос теперь включает список пожеланий API ...; -)

Вы можете использовать JLayer для воспроизведения MP3 на JVM.В Ubuntu он упакован как libjlayer-java.Вот простой пример использования в Java здесь .Оболочка 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 в отдельном потоке, (play-file "/path/to/file.mp3" true), если вы предпочитаете воспроизводить ее в текущем потоке.Твик по своему вкусу.Поставьте свой собственный громкий звуковой сигнал и лай собаки mp3.; -)

Для звукового сигнала и т. Д. Вы также можете использовать MIDI ... Возможно, эта запись в блоге будет полезна, если вы решите попробовать.

Кроме того, ссылка на мой оригинальный ответ может быть полезна при настройке: Ресурсы Java Sound: Ссылки .

1 голос
/ 11 февраля 2018

С 2010 года появилось как минимум три библиотеки для воспроизведения, манипулирования, визуализации и сохранения аудио.

clj-audio

Универсальная аудио библиотека, построенная на основе Java SoundAPI.Имеет минимальное количество зависимостей, но проект выглядит довольно заброшенным.

Ссылка в project.clj (вторая требуется для воспроизведения файлов MP3):

[org.clojars.beppu/clj-audio "0.3.0"]
[com.googlecode.soundlibs/mp3spi "1.9.5.4"]

Пример использования:

(require '[clj-audio.core :refer :all])

;; Play an MP3 file
(-> (->stream "bell.mp3")
    decode
    play)

;; Playing synthesized sounds is an experimental feature for the library

Подробнее: https://github.com/beppu/clj-audio

Динн

Простой и удобный в использовании выбор.Имеет тонны зависимостей.

Ссылка в project.clj:

[org.craigandera/dynne "0.4.1"]

Пример использования:

(require '[dynne.sampled-sound :refer :all])

;; Play an MP3 file
(play (read-sound "bell.mp3"))

;; Play a synthesized sound
(play (sinusoid 1.0 440))

Подробнее: https://github.com/candera/dynne

Overtone

Продвинутая опция, использующая механизм синтеза SuperCollider .Я думаю, это было бы излишним просто для воспроизведения уведомлений, но я привожу это здесь для полноты картины.

Подробнее: https://github.com/overtone/overtone

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...