1 / 21

JAVA Sound

JAVA Sound. Java Sound:. Stellt low-level Routinen zur Soundverarbeitung bereit http://java.sun.com/products/java-media/sound/index.jsp. Applikation. Aufnahme. Wiedergabe. Daten verarbeitung. Java Sound. VM. Soundausgabe vorrichtungen. OS-Hardware. Java Sound.

Télécharger la présentation

JAVA Sound

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JAVA Sound

  2. Java Sound: • Stellt low-level Routinen zur Soundverarbeitung bereit • http://java.sun.com/products/java-media/sound/index.jsp

  3. Applikation Aufnahme Wiedergabe Daten verarbeitung Java Sound VM Soundausgabe vorrichtungen OS-Hardware

  4. Java Sound • Programm muss sich selbst um die Verwaltung elementarer an der Soundverarbeitung beteiligter Datenstrukturen kümmern. • Zu diesen gehören Mixer, Line, Format, etc.. • Diese Ressourcen werden von der Klasse AudioSystem verwaltet.

  5. Mixer • Entspricht einer Vorrichtung zur Verwaltung und Modifikation von Audiosignalen. • Diese kann sowohl in Hard- als auch in Software vorliegen. • Verfügt über ein und Ausgabekanäle (Lines) diese sind ihrerseits mit Kanälen des Betriebssystems oder der Hardware verbunden.

  6. Mixer

  7. Lines • Lines sind die eigentlichen Ein- und Ausgabekanäle. • Sie stellen die Schnittstelle zwischen den eingehenden Audioinformationen und einem Mixer dar. • Können von AudioSystem oder einem assoziierten Mixer bereitgestellt werden.

  8. Clip und SourceDataLine • Bei diesen Klassen handelt es sich um Lines. • Clip wird genutzt um auf eine Audioquelle zuzugreifen, die vollständig im Voraus geladen werden kann. • SourceDataLines stellen die Möglichkeit bereit, eine Audioquelle stückweise in einen Puffer einzuladen und auszugeben, der erheblich kleiner ist, als die Quelle selbst.

  9. SourceDataLine • Der Benutzer lädt Daten in den Puffer hinein, diese werden dann an den Mixer weitergegeben. • Die Kommunikation über den Status der Line erfolgt über Events.

  10. Java Sound • Der Benutzer (also das Programm) muss sich selbständig um die Details der Medienwiedergabe und bestimmte Aufgaben wie Streaming etc. kümmern. • Dies ermöglicht jedoch auch weitgehende Kontrolle über den Ablauf.

  11. Java Media Framework (JMF): • http://java.sun.com/products/java-media/jmf/index.jsp • 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).

  12. JMF • Verfügt bsplw. über eine Player API. • Weitere API‘s stellen Routinen zum Capturen zur Konvertierung und zur Weiterverarbeitung von Medienquellen

  13. Player API • Ermöglicht die Wiedergabe einer Vielzahl von Medienformaten. • Wiedergabemechanismus ist weitgehend unabhängig von der jeweiligen Ausprägung der Medienquelle (Stream, lokale Datei etc.)

  14. Player API • Kann mit URL initialisiert werden. • Übernimmt selbständig Prefetching, Streamverarbeitung und weitere Interna der Medienwiedergabe. • Benutzer muss nur noch den Status des Players beachten und nicht direkt mit den Bereitstellungsmechanismen der Medienquellen kommunizieren.

  15. Player API

  16. 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.

  17. Mp3 und Ogg Vorbis

  18. MP3 - vom Frauenhofer Institut entwickelt - Komprimierung durch Informationsverlust Ogg Vorbis - im Gegensatz zu MP3 freies Format - Komprimierung durch Informationsverlust

  19. Adressen der Soundbibliotheken -http://www.javazoom.net/projects.html -http://www.jcraft.com/jorbis/

  20. SPI und Plugin -http://www.javazoom.net/mp3spi/documents.html -http://www.javazoom.net/vorbisspi/documents.html -http://www.tritonus.org/plugins.html

  21. 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); //Teil der Standard java Sound Bib.baseFormat = baseFileFormat.getFormat(); // Teil der Standard java Sound Bib.// TAudioFileFormat propertiesif (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 propertiesif (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)

More Related