2010-01-19 11 views

cevap

8

OK gibi ... ;-)

Sen JVM üzerinde MP3 oynatma için JLayer kullanabilirsiniz. Ubuntu'da libjlayer-java olarak paketlenmiş. Java here'da basit bir kullanım örneği var. Bir Clojure sarıcı: Bunun yerine geçerli iş parçacığı üzerinde oynamak tercih ederseniz

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

kullanın (play-file "/path/to/file.mp3"), ayrı bir konu (play-file "/path/to/file.mp3" true) sinek bir mp3 çalmak için. Beğeninize ince ayar yapın. Kendi yüksek sesle bip sesini ve havlayan köpek mp3. ;-)

bir yük bip için

ve benzeri, ayrıca denemek isterseniz Belki de bu blog entry yararlı olacaktır ... MIDI kullanabilirsiniz. Java Sound Resources: Links:

Ayrıca benim orijinal cevabını bağlantı hala verdiği de yararlı olabilir.

0

2010 yılından bu yana ses çalma, manipülasyon, görselleştirme ve kaydetmek için en az üç kütüphane ortaya çıktı.

CLJ-ses

bir genel amaçlı ses kütüphanesi Java Ses API üstüne inşa etti. Az miktarda bağımlılık var, ama proje oldukça terkedilmiş görünüyor.

project.clj içinde

Başvuru (ikincisi MP3 dosyalarını oynatmak için gereklidir):

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

Kullanım örneği:

(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 

Diğer ayrıntılar: https://github.com/beppu/clj-audio

Dynne

A basit ve kullanımı kolay bir seçimdir. Bağımlılık tonu var. project.clj yılında

Referans:

[org.craigandera/dynne "0.4.1"] 

Kullanım örneği:

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

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

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

Diğer ayrıntılar: https://github.com/candera/dynne

Overtone

SuperCollider sentez motorunu kullanır gelişmiş bir seçenek. Bildirimleri oynamak için bir overkill olacağını sanırım, ama ben tam anlamıyla buraya başvuruyorum.

Diğer ayrıntılar: https://github.com/overtone/overtone

İlgili konular