Java SE 8 Standard-Bibliothek  
Professionelle Bücher. Auch für Einsteiger.
 
Inhaltsverzeichnis

Vorwort
1 Neues in Java 8 und Java 7
2 Fortgeschrittene String-Verarbeitung
3 Threads und nebenläufige Programmierung
4 Datenstrukturen und Algorithmen
5 Raum und Zeit
6 Dateien, Verzeichnisse und Dateizugriffe
7 Datenströme
8 Die eXtensible Markup Language (XML)
9 Dateiformate
10 Grafische Oberflächen mit Swing
11 Grafikprogrammierung
12 JavaFX
13 Netzwerkprogrammierung
14 Verteilte Programmierung mit RMI
15 RESTful und SOAP-Web-Services
16 Technologien für die Infrastruktur
17 Typen, Reflection und Annotationen
18 Dynamische Übersetzung und Skriptsprachen
19 Logging und Monitoring
20 Sicherheitskonzepte
21 Datenbankmanagement mit JDBC
22 Java Native Interface (JNI)
23 Dienstprogramme für die Java-Umgebung
Stichwortverzeichnis

Jetzt Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Java SE 8 Standard-Bibliothek von Christian Ullenboom
Das Handbuch für Java-Entwickler
Buch: Java SE 8 Standard-Bibliothek

Java SE 8 Standard-Bibliothek
Pfeil 9 Dateiformate
Pfeil 9.1 Einfache Dateiformate für strukturierte Daten
Pfeil 9.1.1 Property-Dateien mit java.util.Properties lesen und schreiben
Pfeil 9.1.2 CSV-Dateien
Pfeil 9.1.3 JSON-Serialisierung mit Jackson
Pfeil 9.2 Dokumentenformate
Pfeil 9.2.1 (X)HTML
Pfeil 9.2.2 PDF-Dokumente
Pfeil 9.2.3 Microsoft Office-Dokumente
Pfeil 9.2.4 OASIS Open Document Format
Pfeil 9.3 Datenkompression *
Pfeil 9.3.1 Java-Unterstützung beim Komprimieren
Pfeil 9.3.2 Daten packen und entpacken
Pfeil 9.3.3 Datenströme komprimieren
Pfeil 9.3.4 ZIP-Archive
Pfeil 9.3.5 JAR-Archive
Pfeil 9.4 Bildformate
Pfeil 9.5 Audiodateien
Pfeil 9.5.1 Die Arbeit mit Applets AudioClip
Pfeil 9.5.2 AudioClip von JavaFX
Pfeil 9.5.3 MIDI-Dateien abspielen
Pfeil 9.5.4 ID-Tags aus mp3-Dateien
 
Zum Seitenanfang

9.5Audiodateien Zur vorigen ÜberschriftZur nächsten Überschrift

Audiodateien lassen sich in Java mit Bordmitteln wiedergeben, aber zum Erstellen und Modifizieren von Sound-Dateien und zur Untersuchung von Metadaten sind Extrabibliotheken notwendig.

Für die Audiowiedergabe in Java gibt es drei Möglichkeiten: über die Applet-Klasse, mit Klassen aus dem Paket javax.sound oder seit Java 8 über JavaFX.

 
Zum Seitenanfang

9.5.1Die Arbeit mit Applets AudioClip Zur vorigen ÜberschriftZur nächsten Überschrift

Die Applet-Klasse verfügt über zwei überladene Objektmethoden getAudioClip(…) und über eine statische Methode newAudioClip(…), die alle eine Audiodatei als AudioClip-Objekt liefern. Die Quelle ist als URL angegeben. Mit der statischen Methode newAudioClip(…) lässt sich ein AudioClip-Objekt auch außerhalb von Applets erzeugen, sodass sich die Methode für normale Applikationen anbietet. Die play()-Methode auf dem AudioClip spielt das Stück ab.

[zB]Beispiel

Spiele die Datei uups.wav in einer Applikation ab:

Listing 9.8com/tutego/insel/sound/AudioClipDemo.java, main()

Path path = Paths.get( "uups.wav" );
AudioClip sound = Applet.newAudioClip( path.toUri().toURL() );
sound.play();
Thread.sleep( 100000 );
class java.applet.Applet
extends Panel
  • AudioClip getAudioClip(URL url)
    Liefert ein AudioClip-Objekt, das durch die URL angegeben ist.

  • AudioClip getAudioClip(URL url, String name)
    Aufruf von getAudioClip(new URL(url, name)).

  • static AudioClip newAudioClip(URL url)
    Liefert ein AudioClip-Objekt, das durch die URL angegeben ist.

 
Zum Seitenanfang

9.5.2AudioClip von JavaFX Zur vorigen ÜberschriftZur nächsten Überschrift

JavaFX verfügt im Paket javafx.scene.media ebenfalls über eine AudioClip-Klasse, die genauso einfach zu nutzen ist wie die aus dem Applet-Paket. Auch mp3-Daten lassen sich abspielen.

[zB]Beispiel

Spiele die über eine URL gegebene Sound-Datei ab:

AudioClip sound = new AudioClip( url );
sound.play();
 
Zum Seitenanfang

9.5.3MIDI-Dateien abspielen Zur vorigen ÜberschriftZur nächsten Überschrift

Die Sound-Engine seit Java-Urtagen kann Dateien im Format AIFF, AU und WAV abspielen. Ebenso ist ein MIDI-Renderer enthalten, der die Dateiformate TYPE 0 MIDI, TYPE 1 MIDI und RMF unterstützt. Dieser erzeugt softwaremäßig mit einem Wave-RAM General Midi. Die Sound-Maschine kann 8‐ oder 16-Bit-Audiodaten rendern, entweder mono oder stereo. Dabei werden Sampling-Raten von 8 bis zu 48 KHz unterstützt.

Soundbanks

Unter Windows funktioniert das Abspielen von MIDI-Dateien auf Anhieb, da Java für die Wiedergabe die Instrumente des Betriebssystems nutzt. Für andere Betriebssysteme müssen Instrumentendateien, so genannte Soundbanks, nachinstalliert werden. Dazu stellt die Seite http://www.oracle.com/technetwork/java/soundbanks-135798.html Soundbanks in drei Qualitätsstufen zur Verfügung. Die Soundbank-Datei wird dann in das Verzeichnis jre8\lib\audio gesetzt.

MIDI-Dateien abspielen

Die Klassen zum Abspielen von MIDI-Dateien liegen unter javax.sound.midi. Die Hardware (oder Software), die MIDI-Daten abspielt, heißt Sequencer.

Listing 9.9com/tutego/insel/sound/MidiDemo.java, main()

try ( Sequencer sequencer = MidiSystem.getSequencer();
InputStream midiFile = ClassLoader.getSystemResourceAsStream( "media/beginn.mid" ) ) {

sequencer.open();
sequencer.setSequence( MidiSystem.getSequence( midiFile ) );
sequencer.start();

System.out.println( "Return beendet das Abspielen" );
System.in.read();

sequencer.stop();
}
System.exit( 0 );

Um an die Sequencer-Instanz zu kommen, wird die Fabrikmethode MidiSystem.getSequencer() bemüht. Anschließend muss die Abspieleinheit initialisiert werden – das geschieht mit open(). Der nächste Schritt besteht darin, die Musik-Informationen bereitzustellen und dem Sequencer zu übergeben. Diese Daten liegen als Sequence-Objekte vor. Sie lassen sich mit MidiSystem.getSequence(…) vorbereiten. Die getSequence(…)-Methode erlaubt als Parameter File-, InputStream- und URL-Objekte. Nun lässt sich der Sequencer mit start() zur Arbeit bewegen; stop() beendet das Abspielen. start() startet automatisch einen Hintergrundprozess, sodass das Abspielen auch dann fortfährt, wenn die statische main(String[])-Methode und der main-Thread schon beendet sind.

class javax.sound.midi.MidiSystem
  • static Sequencer getSequencer()
    Liefert den Standard-Sequencer vom System, also die Standard-Abspieleinheit, die MIDI-Sequenzen abspielt.

interface javax.sound.midi.MidiSystem
extends MidiDevice
  • void setSequence(InputStream stream) throws IOException, InvalidMidiDataException
    Weist dem aktuellen MIDI-System eine MIDI-Datei zu. Der stream muss auf eine MIDI-Datei zeigen. Bei Zugriffsfehlern gibt es eine IOException, und ist das Datenformat fehlerhaft oder wird es nicht vom Java-MIDI-System unterstützt, folgt eine InvalidMidiDataException.

  • void start()
    Startet die Wiedergabe.

  • void stop()
    Stoppt die Wiedergabe.

  • boolean isRunning()
    Liefert true, wenn die Wiedergabe mit start() gestartet wurde und noch läuft, also noch nicht mit stop() beendet wurde. Sonst false.

Bemerkung

Die Entwicklung der Java Sound API steht still. Zuletzt arbeitete nur noch ein Entwickler am Projekt, der ging aber auch irgendwann. So wie die Java Sound API auf Eis gelegt ist, ist auch das Java Media Framework (JMF) erst einmal gestorben. Sun wollte ursprünglich das JMF zum Abspielen von Multimedia-Dateien etablieren, doch wird es schon lange nicht mehr weiterentwickelt, und bei der letzten Änderung Ende 2004 ist lediglich mp3 hinzugekommen. Für die Medienwiedergabe wird sich wohl JavaFX etablieren, aber damit stehen immer noch nicht alle Codecs zur Verfügung.

 
Zum Seitenanfang

9.5.4ID-Tags aus mp3-Dateien Zur vorigen ÜberschriftZur nächsten Überschrift

mp3-Dateien enthalten neben den komprimierten Musikinformationen zusätzliche Infos, wobei dies kein Teil des offiziellen mp3-Standards ist. Diese Metadaten sind in ID3-Tags abgelegt. Sie beschreiben zum Beispiel den Künstler, den Titel des Liedes, den Namen des Albums oder das Erscheinungsjahr, und ein Genre-Feld schreibt dem Lied eine Stilrichtung zu. Ein mp3-Player wertet diese Tags aus und zeigt sie an.

Seit der ersten Version der Tags hat die Datenstruktur in ihrer Komplexität erheblich zugenommen, da zusätzliche Informationen interessant sind; dies führte zur erweiterten Definition der Tags. Die Möglichkeit, eine variable Anzahl von Tags mittels Frames einzusetzen (ähnlich ist die Verkettung in IPv6), erlaubt eine präzise Einordnung des Songs mit Angaben über Songtexter, das produzierende Label, Handel und Weiteres. Mehr als 70 Frame-Typen sind dokumentiert.

Tags lesen und schreiben

Zum Lesen und Schreiben von ID3-Tags bringt Java standardmäßig keine Unterstützung mit. Doch gibt es im Bereich quelloffener Software einige externe Bibliotheken, darunter http://sourceforge.net/projects/jd3lib. Damit lassen sich die Tags auslesen; und da die Metadaten nicht immer sinnvoll gefüllt sind, lassen sie sich von Java auch neu beschreiben.

 


Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Java SE 8 Standard-Bibliothek Java SE 8 Standard-Bibliothek
Jetzt Buch bestellen

 Buchempfehlungen
Zum Rheinwerk-Shop: Java ist auch eine Insel
Java ist auch eine Insel


Zum Rheinwerk-Shop: Professionell entwickeln mit Java EE 8
Professionell entwickeln mit Java EE 8


Zum Rheinwerk-Shop: Besser coden
Besser coden


Zum Rheinwerk-Shop: Entwurfsmuster
Entwurfsmuster


Zum Rheinwerk-Shop: IT-Projektmanagement
IT-Projektmanagement


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2018. Original - https://www.rheinwerk-verlag.de/openbook/
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 

 
 


29.03.2024 - Sitemap.xml