Soundfiles in Java 1.5.0_01

Zilchinger

Mitglied
Hi,
ich wollte in Java ein WAV-File abspielen lassen.
Dazu habe ich einige Posts hier im Forum gefunden, das funktioniert auch alles wunderbar mit der JRE 1.4.2_07.

Jetzt habe ich mal mein SDK 1.5.0_01 ausprobiert und dort funktioniert es nicht.

Das Einzige was geht, ist wenn ich mit newAudioClip(...) mir einen neuen Clip anlegen und denn dann mit der Methode loop() starte. Dann spielt er das File unendlich lang ab.
play() geht hier auch nicht.

Das Erstellen einens Clips über den AudioInputStream geht auch nicht mit Java 5. Es gibt zwar keine Fehler, aber der Sound ist nicht zu hören.

Weiß jemand woran das liegt? :confused:
 
Hallo!

Schau mal hier:
Code:
/**
 * 
 */
package de.tutorials;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.swing.JButton;
import javax.swing.JFrame;

/**
 * @author Administrator
 * 
 */
public class Player extends JFrame {

	private Clip clip;

	private JButton btn;

	private boolean running;

	public Player() {
		super("Player");
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		initPlayer();
		btn = new JButton("Play");
		btn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if (!running) {
					running = true;
					clip.start();
				} else {
					running = false;
					clip.stop();
				}
			}
		});

		add(btn);

		pack();
		setVisible(true);
	}

	private void initPlayer() {
		try {
			AudioInputStream ais = AudioSystem.getAudioInputStream(new File(
					"C:\\WINNT\\media\\Der Microsoft Sound.wav"));
			AudioFormat format = ais.getFormat();
			DataLine.Info info = new DataLine.Info(Clip.class, format,
					((int) ais.getFrameLength() * format.getFrameSize()));
			clip = (Clip) AudioSystem.getLine(info);
			clip.open(ais);

			FloatControl gainControl = (FloatControl) clip
					.getControl(FloatControl.Type.MASTER_GAIN);
			gainControl.setValue(1.0F);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new Player();
	}
}

Gruß Tom
 
Hallo Thomas,
mit deinem Quelltext ist es das gleiche Problem, aber ich weiß jetzt woran das liegt.
Wav-File != Wav-File
Es gibt Wav-Files die sind irgendwie so codiert, das es nicht funktioniert. Aber es gibt auch keine Exception. Ich habe nämlich Files gefunden die funktionieren ohne Probleme.

Komisch... :p
 
MiRaMC hat gesagt.:
Es gibt

Microsoft ADPCM & DVI/IMA ADPCM

Hm, dazu 3 kleine Fragen:
Und was von beidem kann nun Java nicht? ;)
Und wie finde ich heraus welches Format mein WAV hat?
(Ausser es mit Java abzuspielen und zu merken, dass es (nicht) geht)
Wie/mit was konvertiere ich ggf. um?
 
Also, ich benütz zum umcodieren immer CoolEdit 2000.
Des von Microsoft müste gehn.
Also bei Windows auf Rechtsklick | Eigenschaften zeigts des net so genau an, dann muss mans halt mit nem Programm machen (CoolEdit)
 
morgen!

also mit dem script vom tom kann ma aber keine langen waves abspielen, weil des sonst ruckelt (kann man das bei am sound sagen?)

und man kann kane mp3s abspielen

gibts da irgendwas damit das geht?

mfg
coolerouny
 
coolerouny hat gesagt.:
gibts da irgendwas damit das geht?

Jep *mal kurz aus der Insel zitier*

Insel hat gesagt.:
Die Sound-API im Paket javax.sound erlaubt Erweiterungen um eigene Audio-Spieler. So gibt es einen Winamp-ähnlichen MP3-Spieler mit dem Namen jlGui (http://www.javazoom.net/jlgui/jlgui.html), dem der Unterschied zu einem nativen Player nicht anzusehen ist.1 Er unterstützt Drag&Drop, Webstart, M3U, WinAmp Skins, OGG Vobis und vieles mehr. jlGui nutzt hierzu einen eigenen AudioLayer (http://javalayer.sourceforge.net/) zum Abspielen von MP3-Dateien. Die zusätzliche Bibliothek basiert auf der Möglichkeit, eigene SPIs einzuhängen.

Ob jlGui OpenSource ist, weiss ich nicht, hab ich grad beim Drübergucken nicht erkennen können. JavaLayer ist es auf jedenfall. Dürfte beides interessant sein, denk ich.

MiRaMC:
Okay!
 
Hi Leute!
Ich Programmiere gerade ein kleines Spiel mit java Klassen (keine Applets) und suche nach einer Möglichkeit während des Spiels eine Musik in einer Endlosschleife laufen zu lassen.Habe bis jetzt nur Lösungen in Applet-Form gefunden und die Lösung von Thomas Darimont funktioniert nicht! (außerdem bracuhe ich nicht einen ganzen Player)

Hoffe das ihr mir helfen könnt und auf baldige Antwort.

MFG fat
 
Zurück