2010-01-19 17 views

Respuesta

8

, con la pregunta que ahora incluye una lista de deseos API ... ;-)

Puede utilizar JLayer para la reproducción de MP3 en la JVM. En Ubuntu está empaquetado como libjlayer-java. Hay un ejemplo simple de uso en Java here. Una envoltura 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))))))) 

Uso (play-file "/path/to/file.mp3") para reproducir un mp3 volar en un hilo separado, (play-file "/path/to/file.mp3" true) si usted prefiere jugar en el hilo actual en su lugar. Ajusta a tu gusto. Proporcione su propio sonido fuerte y ladridos de perro mp3. ;-)

Para un pitido de carga y similares, también se puede usar MIDI ... Quizás esto blog entry sea útil si elige intentarlo.

Además, el enlace de mi respuesta original aún puede ser útil en su ajuste: Java Sound Resources: Links.

0

Desde el año 2010 aparecieron al menos tres bibliotecas para reproducción de audio, manipulación, visualización y guardado.

CLJ-Audio

Una biblioteca de audio de uso general construidas en la parte superior de la API de Java de sonido. Tiene una cantidad mínima de dependencias, pero el proyecto parece bastante abandonado.

referencia en project.clj (el segundo es necesario para la reproducción de archivos MP3): Ejemplo

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

Uso:

(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 

más detalles: https://github.com/beppu/clj-audio

RELAJÍN

Un elección simple y fácil de usar. Tiene toneladas de dependencias.

referencia en project.clj:

[org.craigandera/dynne "0.4.1"] 

Ejemplo de uso:

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

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

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

Más detalles: https://github.com/candera/dynne

Entonada

una opción avanzada que se basa en el motor SuperCollider síntesis. Supongo que sería demasiado para solo reproducir notificaciones, pero lo estoy refiriendo aquí para que esté completo.

Más detalles: https://github.com/overtone/overtone

Cuestiones relacionadas