Java Sound Java Sound: Stellt low-level Routinen zur Soundverarbeitung bereit. Setzt direkt auf den durch Betriebssystem und Hardware dargebotenen Vorrichtungen zur Soundausgabe auf. Details der Ein-Ausgabe der Daten und die Umwandlung zwischen verschiedenen Datenformaten muss der Programmierer selbst kontrollieren. Die wichtigsten Funktionen von Java Sound sind in beinahe allen größeren JVM Implementierungen realisiert. Java Media Framework (JMF): Abstrahiert von diversen, in Java integrierten, Medienbibliotheken. Durch vorgefertigte Klassen kann das Wiedergeben, Aufzeichnen und Umwandeln von Medienquellen in einfacherer Art und Weise gehandhabt werden als durch Verwendung der low-level Bibliotheken (bsplw. Java Sound). JMF steht in den wichtigsten Java Implementierungen zur Verfügung. Service Provider Interface (SPI): SPI ist eine Schnittstelle, die es erlaubt, die Fähigkeiten der JVM zu erweitern. Diese Funktionalitätserweiterung kann so durchgeführt werden, dass sie für den Benutzer der VM (i.A. ein Java Programm) transparent bleibt. So können z.B. nachträglich weitere Formate der Verarbeitungskompetenz der Java Medienbibliotheken hinzugefügt werden. Die Adressen der Sound Libs: - http://www.javazoom.net/projects.html - http://www.jcraft.com/jorbis/ Adresse für den benötigten Teil von Tritonus: - http://www.tritonus.org/plugins.html Einführungsbeispiele für die SPIs: - http://www.javazoom.net/mp3spi/documents.html - http://www.javazoom.net/vorbisspi/documents.html Ein Beispiel für das Auslesen der MP3 Header Informationen: import org.tritonus.share.sampled.TAudioFormat; import org.tritonus.share.sampled.file.TAudioFileFormat; [...] File file = new File(filename); AudioFileFormat baseFileFormat = null; AudioFormat baseFormat = null; baseFileFormat = AudioSystem.getAudioFileFormat(file); baseFormat = baseFileFormat.getFormat(); // TAudioFileFormat properties if (baseFileFormat instanceof TAudioFileFormat) { Map properties = ((TAudioFileFormat)baseFileFormat).properties(); String key = "author"; String val = (String) properties.get(key); key = "mp3.id3tagv2"; InputStream tag= (InputStream) properties.get(key); } // TAudioFormat properties if (baseFormat instanceof TAudioFormat) { Map properties = ((TAudioFormat)baseFormat).properties(); String key = "bitrate"; Integer val = (Integer) properties.get(key); } (Quelle: http://www.javazoom.net/mp3spi/documents.html) //Teil der Standard java Sound Bib. // Teil der Standard java Sound Bib.