2010-01-19 11 views

Antwort

8

OK, mit der Frage einer API Wunschliste jetzt einschließlich ... ;-)

Sie können JLayer für MP3-Wiedergabe auf der JVM verwenden. Auf Ubuntu ist es als libjlayer-java verpackt. Es gibt ein einfaches Anwendungsbeispiel in Java here. Ein Clojure-Wrapper:

(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))))))) 

Verwenden (play-file "/path/to/file.mp3") einen MP3-Fliegen in einem separaten Thread wiedergeben, (play-file "/path/to/file.mp3" true), wenn man es auf den aktuellen Thread statt zu spielen, würde es vorziehen. Tweak nach Ihren Wünschen. Liefern Sie Ihren eigenen lauten Piepser und bellenden Hund mp3. ;-)

Für einen Load-Piep und ähnliches könnten Sie auch MIDI verwenden ... Vielleicht ist dies blog entry hilfreich, wenn Sie es versuchen möchten.

Auch der Link von meiner ursprünglichen Antwort kann immer noch hilfreich sein in Ihrem Tweaking: Java Sound Resources: Links.

0

Seit dem Jahr 2010 gibt es mindestens drei Bibliotheken für Audiowiedergabe, Bearbeitung, Visualisierung und Speicherung.

CLJ-Audio-

Eine Allzweck-Audio-Bibliothek auf dem API Java Ton gebaut. Hat eine minimale Menge an Abhängigkeiten, aber das Projekt sieht ziemlich verlassen aus.

Referenz in project.clj (die zweite für die Wiedergabe von MP3-Dateien erforderlich ist):

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

Anwendungsbeispiel:

(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 

Weitere Details: https://github.com/beppu/clj-audio

Dynne

A einfache und leicht zu bedienende Wahl. Hat Tonnen von Abhängigkeiten.

Referenz in project.clj:

[org.craigandera/dynne "0.4.1"] 

Anwendungsbeispiel:

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

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

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

Weitere Details: https://github.com/candera/dynne

Overtone

Eine erweiterte Option, die auf der SuperCollider Synthese-Engine basiert. Ich denke, es wäre ein Overkill für das Abspielen von Benachrichtigungen, aber ich verweise es hier der Vollständigkeit halber.

Weitere Details: https://github.com/overtone/overtone

Verwandte Themen