Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Sprachbeschreibung
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Mathematisches
6 Eigene Klassen schreiben
7 Angewandte Objektorientierung
8 Exceptions
9 Generics, innere Klassen
10 Die Klassenbibliothek
11 Threads und nebenläufige Programmierung
12 Datenstrukturen und Algorithmen
13 Raum und Zeit
14 Dateien und Datenströme
15 Die eXtensible Markup Language (XML)
16 Grafische Oberflächen mit Swing
17 Grafikprogrammierung
18 Netzwerkprogrammierung
19 Verteilte Programmierung mit RMI und Web–Services
20 JavaServer Pages und Servlets
21 Applets
22 Midlets und die Java ME
23 Datenbankmanagement mit JDBC
24 Reflection und Annotationen
25 Logging und Monitoring
26 Sicherheitskonzepte
27 Java Native Interface (JNI)
28 Dienstprogramme für die Java-Umgebung
Stichwort

Download:
- ZIP, ca. 14,1 MB
Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Java ist auch eine Insel (8. Auflage) von Christian Ullenboom
Programmieren mit der Java Standard Edition Version 6
Buch: Java ist auch eine Insel (8. Auflage)

Java ist auch eine Insel (8. Aufl.)
8., aktual. Auflage, geb., mit DVD
1.475 S., 49,90 Euro
Galileo Computing
ISBN 978-3-8362-1371-4
Pfeil 10 Die Klassenbibliothek
Pfeil 10.1 Die Java-Klassenphilosophie
Pfeil 10.1.1 Übersicht über die Pakete der Standardbibliothek
Pfeil 10.2 Object ist die Mutter aller Klassen
Pfeil 10.2.1 Klassenobjekte
Pfeil 10.2.2 Objektidentifikation mit toString()
Pfeil 10.2.3 Objektgleichheit mit equals() und Identität
Pfeil 10.2.4 Klonen eines Objekts mit clone()
Pfeil 10.2.5 Hashcodes über hashCode() liefern
Pfeil 10.2.6 Aufräumen mit finalize()
Pfeil 10.2.7 Synchronisation
Pfeil 10.3 Die Spezial-Oberklasse Enum
Pfeil 10.3.1 Methoden auf Enum-Objekten
Pfeil 10.3.2 enum mit eigenen Konstruktoren und Methoden
Pfeil 10.4 Klassenlader (Class Loader)
Pfeil 10.4.1 Woher die kleinen Klassen kommen
Pfeil 10.4.2 Setzen des Klassenpfades
Pfeil 10.4.3 Die wichtigsten drei Typen von Klassenladern
Pfeil 10.4.4 Der java.lang.ClassLoader
Pfeil 10.4.5 Hot Deployment mit dem URL-Classloader
Pfeil 10.4.6 Das jre/lib/endorsed-Verzeichnis
Pfeil 10.5 Die Utility-Klasse System und Properties
Pfeil 10.5.1 Systemeigenschaften der Java-Umgebung
Pfeil 10.5.2 line.separator
Pfeil 10.5.3 Property von der Konsole aus setzen
Pfeil 10.5.4 Umgebungsvariablen des Betriebssystems
Pfeil 10.5.5 Einfache Zeitmessung und Profiling
Pfeil 10.6 Ausführen externer Programme und Skripte
Pfeil 10.6.1 ProcessBuilder und Prozesskontrolle mit Process
Pfeil 10.6.2 Einen Browser/E-Mail-Client/Editor aufrufen
Pfeil 10.6.3 Ausführen von Skripten
Pfeil 10.7 Benutzereinstellungen
Pfeil 10.7.1 Benutzereinstellungen speichern
Pfeil 10.7.2 Einträge einfügen, auslesen und löschen
Pfeil 10.7.3 Auslesen der Daten und Schreiben in anderem Format
Pfeil 10.7.4 Auf Ereignisse horchen
Pfeil 10.7.5 Zugriff auf die gesamte Windows-Registry
Pfeil 10.8 Musik abspielen
Pfeil 10.8.1 Die Arbeit mit AudioClip
Pfeil 10.8.2 Java Sound API
Pfeil 10.9 Annotationen
Pfeil 10.9.1 Annotationstypen @Override, @Deprecated, @SuppressWarnings
Pfeil 10.9.2 Annotationen für Web-Services
Pfeil 10.10 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

10.8 Musik abspielen Zur nächsten ÜberschriftZur vorigen Überschrift

Für die Audio-Wiedergabe in Java gibt es zwei Möglichkeiten: sich über die Applet-Klasse ein AudioClip geben zu lassen oder mit Klassen aus dem Paket javax.sound zu arbeiten.


Galileo Computing - Zum Seitenanfang

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

Die Applet-Klasse verfügt über zwei Objektmethoden getAudioClip() und über eine statische Methode newAudioClip(), die alle eine Audio-Datei als AudioClip-Objekt liefern. Die Quelle ist als URL angegeben. Mit der statischen Funktion 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.


Beispiel Spiele die Datei uups.wav in einer Applikation ab.

File f = new File( "uups.wav" ); 
AudioClip sound = Applet.newAudioClip( f.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.

Galileo Computing - Zum Seitenanfang

10.8.2 Java Sound API topZur vorigen Überschrift

Die Sound-Engine kann seit Java 2 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-Audio-Daten rendern, entweder mono oder stereo. Dabei werden Sampling-Raten von 8 bis zu 48 KHz unterstützt.

Im Allgemeinen funktioniert das Abspielen auf Anhieb. Die Java Sound API nutzt für die Instrumente das Angebot des Betriebssystems, doch lassen sich von Sun unter http://java.sun.com/products/java-media/sound/soundbanks.html einheitliche Instrumentendateien, so genannte Soundbanks, laden. Unter C:\Programme\Java\jre1.6.0\lib\audio – das Verzeichnis gilt für die Standardinstallation unter C:\Programme – findet sich schon die kleinste Soundbank, soundbank.gm. In das Verzeichnis lässt sich auch die Deluxe-Version soundbank-deluxe.gm mit über 5 MB entpacken, die Instrumente höchster Qualität bietet.

Die Sound-API im Paket javax.sound erlaubt Erweiterungen um eigene Audio-Spieler. So gibt es einen Winamp-ähnlichen MP3-Spieler namens jlGui (http://www.javazoom.net/jlgui/jlgui.html), dem der Unterschied zu einem nativen Player nicht anzumerken ist. [Er lässt sich per Webstart sofort ausprobieren: http://www.javazoom.net/jlgui/jws/jlgui_jnlp.jsp. Unter http://www.javazoom.net/jlgui/jnlp_configurator.jsp lassen sich einige Parameter einstellen und dann gleich ausprobieren. Cool!] Er unterstützt Drag & Drop, Webstart, M3U, WinAmp Skins, OGG Vobis und vieles mehr. jlGui nutzt hierfür einen eigenen Audio-Layer (http://javalayer.sourceforge.net/) zum Abspielen von MP3-Dateien. Die zusätzliche Bibliothek basiert auf der Möglichkeit, eigene SPIs einzuhängen.

MIDI-Dateien abspielen

Die Klassen zum Abspielen von MIDI-Dateien liegen unter javax.sound.midi. Die MIDI-Daten abspielende Hardware (oder Software) heißt Sequencer. Um an die Sequencer-Instanz zu kommen, wird die Fabrikfunktion MidiSystem.getSequencer() bemüht. Anschließend muss die Abspieleinheit initialisiert werden – das geschieht mit open().

Sequencer sequencer = MidiSystem.getSequencer(); 
sequencer.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.

InputStream midiFile = ClassLoader.getSystemResourceAsStream("media/beginn.mid"); 
sequencer.setSequence( MidiSystem.getSequence(midiFile) ); 
sequencer.start(); 
sequencer.stop();

Nun könnten Sie den Sequencer mit start() zur Arbeit bewegen und mit stop() das Abspielen beenden. Bei start() wird automatisch ein Hintergrundprozess gestartet, sodass das Abspielen auch dann fortfährt, wenn die main()-Funktion und der main-Thread schon beendet sind:


Bemerkung Die Entwicklung der Java Sound API steht still. Zuletzt arbeitete nur ein Entwickler am Projekt (siehe dazu auch http://weblogs.java.net/blog/jonathansimon/archive/2003/06/whats_up_with_t.html), nun ist auch er gegangen. So wie auch die Java Sound API auf Eis gelegt ist, ist auch das Java Media Framework (JMF) erst einmal gestorben, und wir können die Annotation @Tot an das Projekt setzen.

Sun wollte das JMF zum Abspielen von Multimedia-Dateien etablieren, doch wird es schon lange nicht mehr weiterentwickelt, und in der letzten Änderung Ende 2004 ist lediglich MP3 hinzugekommen. Es gibt Ansätze wie FMJ (Freedom for Media in Java), die darin bestehen, das Java Media Framework auf der Basis von jffmpeg frei nachzuimplementieren, doch offiziell unterstützt Sun das nicht. Das neueste Schlagwort ist Java Media Components (JMC), eine Video-API, doch mache ich mir keine großen Hoffnungen.




Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






<< zurück
  Zum Katalog
Zum Katalog: Java ist auch eine Insel





Java ist auch eine Insel
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Tipp
Zum Katalog: Coding for Fun





 Coding for Fun


 Buchempfehlungen
Zum Katalog: Objektorientierte Programmierung





 Objektorientierte
 Programmierung


Zum Katalog: Einstieg in Eclipse 3.4






 Einstieg in
 Eclipse 3.4


Zum Katalog: Java 6 lernen mit Eclipse






 Java 6 lernen
 mit Eclipse


Zum Katalog: NetBeans Platform 6






 NetBeans
 Platform 6


Zum Katalog: Java und XML






 Java und XML


Zum Katalog: Visual C# 2008






 Visual C# 2008


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: C++ von A bis Z






 C++ von A bis Z


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2009
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.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de