# Java und Audio (JMF, mp3)



## Beliar (22. Okt 2006)

Hallo allerseits!
Ich möchte in ein Programm einige Funktionen einbauen, die Audio Daten verarbeiten. Aufnehmen und abspielen. 
Nun hab ich einiges recherchiert und bin ziemlich ernüchtert. Bisher erschien mir die Java API und die externen Libs fast Allumfassend zu sein, aber hier gibt es gravierende Lücken! JMF unterstützt kein mp3, nur mit einem Plugin auf der sun seite kann es mp3 überhaupt dekodieren.
Es gibt nicht mal eine Dokumentation zu diesem Plugin und scheinbar gibt es auch noch einige abstriche in Punkto Plattformunabhängigkeit beim JMF (teilweise eigene codecs für windows, "performance packs" für spezifische plattformen, das  mp3 plugin muss installiert werden usw).

Nun bin ich schwer am überlegen was ich nun tun soll. Entweder versuchen das Plugin zum abspielen zu verwenden und die Ton aufzeichnungen in einem anderen Format zu machen. Oder vielleicht Lame über JNI einbinden? Nur hab ich nicht sehr viel Ahnung von JNI, zudem muss das Programm mindestens auf Windows, Linux und Mac OS laufen. Was soviel heisst wie, ich muss lame für all diese Plattformen kompilieren und einbinden.
Windows und Linux kein Problem, dll und so kenn ich, ich hab compiler usw, aber Mac? Ich hab nicht mal einen eigenen Mac rechner, und noch nie etwas für mac kompiliert. Was ist das Mac equivalent einer DLL??

Medienverarbeitung in Java scheint echt kein beliebtes thema zu sein, es gibt hier nicht mal ein eigenes Forum dazu 
Aber vielleicht hat sich irgendwer ja shcon damit beschäftigt und kann mir helfe?
Danke,
MFG Beliar


----------



## The_S (23. Okt 2006)

Beliar hat gesagt.:
			
		

> Hallo allerseits!



Moin!



			
				Beliar hat gesagt.:
			
		

> Ich möchte in ein Programm einige Funktionen einbauen, die Audio Daten verarbeiten. Aufnehmen und abspielen.



Ist (wie du schon festgestellt hast) in Java nicht unbedingt einfach, aber möglich (siehe http://www.javazoom.net/jlgui/jlgui.html )



			
				Beliar hat gesagt.:
			
		

> JMF unterstützt kein mp3



Wer erzählt denn sowas? Zumindest bei der Windows-Installation ist es fest mit integriert und muss über kein externes Plug-In eingebunden werden.




			
				Beliar hat gesagt.:
			
		

> Es gibt nicht mal eine Dokumentation zu diesem Plugin



Also ich hab in der normalen API zum JMF alles gefunden, was ich zum Thema mp3 benötigt habe (muss aber zugeben, dass sich das bis jetzt nur auf das Abspielen von mp3s konzentriert hat)

http://java.sun.com/products/java-media/jmf/reference/api/index.html


----------



## Beliar (23. Okt 2006)

Hallo, 
erst mal danke für die Antwort.

Zu dem MP3 dingens, also im Buch "Medienverarbeitung in Java" (von Eidenberger und Divotkey) steht drin, dass es aus lizenzrechtlichen Gründen entfernt wurde. Das Buch wurde aber 2003 geschrieben...
Es steht auch drin, es gäbe keine Linux Version. Aber das ist glaub ich echt humbug.
Ausserdem steht auf der JMF Seite eine News über das Plugin:
http://java.sun.com/products/java-media/jmf/mp3/download.html

Ohne weitere Doku oder sonst etwas.

Zu der Doku. Hm also ich hab sie mir damals nur oberflächlich angeschaut. Im Index steht nichts von mp3, weisst du zufällig in welchem Kapitel das vor kommt? Bzw. unterstützte Codecs allgemein.

Dieser Player sieht interessant aus, danke für den Link. Der scheint auf JavaSound und nicht auf dem JMF zu basieren. Ausserdem hat der wohl einiges selbst implementiert. Dort steht auch etwas von codecs als JAR nachinstallieren. Das werd ich mir mal genauer durchlesen.

thx,
MFG Beliar


----------



## The_S (23. Okt 2006)

Unterstütze Codecs findest du irgendwo auf java.sun.com . Einfach mal ein bisschen durchwühlen die Seite  . Sobald der Codec richtig eingebunden ist kannst du mp3s genauso wie jedes andere unterstütze Format über einen Player abspielen.


----------



## Beliar (24. Okt 2006)

Hallo,
tja...
Also ich hab das MP3 Plugin (http://java.sun.com/products/java-media/jmf/mp3/download.html) installiert. Es wird auch in Eclipse in meinem Build Path angezeigt. Verzweifelt hab ich nach einer Doku gesucht und keine gefunden. Dachte das dekodiert vielleicht automatisch. Hab es mit dem Beispielprogramm aus dem JavaHandbuch abgespielt, kein Erfolg.
Im netzt hab ich einen code gefunden, dort wird das Format abgefragt: AudioFormat.Encoding.MP3 und nach PCM konvertiert. Das JavaHandbuch prog macht das gleiche mit ULAW und ALAW. 
Aber dieses AudioFormat.Encoding.MP3 das der verwendet gibts anscheinend ncihts. In der Doku stehts klarerweise nicht, Eclipse listet es nicht auf und ich bekomm einen Fehler wenn ichs halt einfach versuch zu compilen...

Ja und die anderen Lösungen.. Die sind alle irgendwie nicht gerade Plattformunabhängig (ich brauch win, linux, und mac), oder man muss beim client 3 Bibliotheken installieren usw...
Sieht nicht so rosig aus 

MP3 abspielen und halt die aufzeichnung vom micro als was anderes speichern wär mir schon recht. Aber wenn ich das mp3 plugin nicht zum laufen bringe, wei kann ich das dann vom otto-normal-verbraucher erwarten :/

Gibts in diesem Forum echt niemanden der sich schon damit beschäftigt hat?

MFG, Beliar


----------

