Sound wird nicht abgspielt

V

vitafit

Gast
Guten Tag.

Ich habe dieses einfache Beispiel im Internet gefunden, um einen Ton bzw. ein Lied abzuspielen.
Jedoch würde ich den Quellcode kürzen wollen, um nur das Lied abzuspielen und nicht den Benutzer fragen, ob er das Lied starten, stoppen oder um Hilfe bitten will.

Hier ist der Code, der auch funktioniert:

Java:
import java.io.*; // for File
import java.util.*; // for Scanner
import javax.sound.sampled.*; // allows you to use the sound classes

public class GameMusic
{
	// SET UP
	static File file;
	static AudioInputStream stream;
	static Clip music;
	
	/* NOTE: "throws Exception" is important for setup. Your program will NOT compile if
	 * this is not included. */
	public static void main(String[] args) throws Exception
	{
		// FILE - part of set-up
		file = new File("techno.wav");
		
		// miscellaneous test stuff
		Scanner in = new Scanner(System.in);
		boolean exit = false;
		
		do
		{
			System.out.print("What to do? (0 = help) ");
			int choice = in.nextInt();
			
			switch (choice)
			{
				case 0: help(); break;
				case 1: start(); break;
				case 2: stop(); break;
				case 3: exit = true; break;
				default: System.out.println("Invalid choice.");
			}
		}
		while (!exit);
	}
	
	public static void help()
	{
		System.out.println("0 - help");
		System.out.println("1 - start");
		System.out.println("2 - stop");
		System.out.println("3 - exit");
	}
	
	/* NOTE: "throws Exception" is important for starting. Your program will NOT compile if
	 * this is not included. */
	public static void start() throws Exception 
	{
		// SET UP
		
		stream = AudioSystem.getAudioInputStream(file);
		music = AudioSystem.getClip();
		
		// PLAY
		
		music.open(stream);
		music.start();
		music.loop(Clip.LOOP_CONTINUOUSLY);
	}
	
	public static void stop()
	{
		// STOP
		
		music.stop();
		music.close();
	}
}
Wenn ich das Programm starte und in die Console 1 eingebe, startet das Lied auch, wenn ich jedoch den Code auf den Teil der nur für das Abspielen ist begrenze, funktioniert es nicht mehr.
Es wird kein Ton abgespielt und in der Console erscheint in Eclipse in der Leiste <terminated>.


Java:
import java.io.*; // for File
import java.util.*; // for Scanner
import javax.sound.sampled.*; // allows you to use the sound classes

public class SoundClipTest
{

	
	/* NOTE: "throws Exception" is important for setup. Your program will NOT compile if
	 * this is not included. */
	public static void main(String[] args) throws Exception
	{
		System.out.println("Musik wird abgespielt");
		try
		{
			File file = new File("techno.wav");
			AudioInputStream stream = AudioSystem.getAudioInputStream(file);
			Clip music = AudioSystem.getClip();
			
			music.open(stream);
			music.loop(Clip.LOOP_CONTINUOUSLY);
			music.start();
		}
		catch (Exception e) {}
		
		
	}
}

Ich hoffe ihr könnt mir weiterhelfen.
 

Suinos

Bekanntes Mitglied
Ähh..
[JAVA=58]
// original
music.open(stream);
music.start();
music.loop(Clip.LOOP_CONTINUOUSLY);
[/code]
[JAVA=19]
// deins
music.open(stream);
music.loop(Clip.LOOP_CONTINUOUSLY);
music.start();
[/code]

Vielleicht hilft es, wenn du den Code einfach richtig kopierst?

--

Das ist ganz schlecht:
[JAVA=24]catch (Exception e) {}[/code]
Immer mindestens die Exception ausgeben, sonst erfährst du nicht, wenn dort etwas passiert ist!
 
V

vitafit

Gast
Vielen Dank, dass du dich gemeldet hast Suinos :)

Auch wenn ich die beiden Zeilen umdrehe wird nichts mehr abgespielt.
Und mit der Ausgabe der Exception sollte es so aussehen oder?

Java:
	public static void main(String[] args) throws Exception
	{
		System.out.println("Hallo");
		try
		{
			File file = new File("techno.wav");
			AudioInputStream stream = AudioSystem.getAudioInputStream(file);
			Clip music = AudioSystem.getClip();
			music.open(stream);
			music.start();
			music.loop(Clip.LOOP_CONTINUOUSLY);
		}
		catch (Exception e) {System.out.println(e);}
		
		
	}
}

In der Console wird nur "Hallo" ausgegeben und es erscheint wieder <terminated>

Danke für jede weitere Hilfe.
 

homer65

Top Contributor
Im ersten Beispiel wird der Haupt Thread nicht beendet wegen:
Java:
while (!exit);
Im zweiten wird der Haupt Thread jedoch beendet.
Ich vermute, das
Java:
music.loop(Clip.LOOP_CONTINUOUSLY);
einen Daemon startet, der sich automatisch beendet, wenn der Haupt Thread endet.
 
V

vitafit

Gast
Dankeschön homer65 :)

Doch wie kann ich bewerkstelligen, dass der Haupt-Thread im zweiten Quellcode nicht beendet wird?
Hiermit höre ich zwar etwas, jedoch wird das Lied so oft gestartet, sodass Eclipse das Programm stoppen muss:

Java:
try
		{
			do{
			File file = new File("techno.wav");
			AudioInputStream stream = AudioSystem.getAudioInputStream(file);
			Clip music = AudioSystem.getClip();
			music.open(stream);
			music.start();
			music.loop(Clip.LOOP_CONTINUOUSLY);

			
			}while (!false);
			}
		catch (Exception e) {System.out.println(e);}
	}

music.loop(Clip.LOOP_CONTINUOUSLY) ist dafür zuständig das Lied zu wiederholen, wenn es das Ende erreicht hat.

Vielen Dank nochmal.
 

homer65

Top Contributor
Tja, da gibt es sicherlich verschiedene Möglichkeiten. Alle haben Vor- und Nachteile. Hängt auch davon ab, was du erreichen willst.
Eine Idee wäre eine GUI mit Swing zu bauen, die einen Start- und Stopbutton hatt.
Kennst du Swing?
 

Sonecc

Gesperrter Benutzer
Java:
try
        {
  
            File file = new File("techno.wav");
            AudioInputStream stream = AudioSystem.getAudioInputStream(file);
            Clip music = AudioSystem.getClip();
            music.open(stream);
            music.start();
            music.loop(Clip.LOOP_CONTINUOUSLY);
 
            
            while (true) {
                   Thread.sleep(1000);
            }
        catch (Exception e) {System.out.println(e);}
    }
 
V

vitafit

Gast
@homer65
Ja mit Swing habe ich schon einige grafische Oberflächen erzeugt.
Ich wollte das Lied als Hintergrundmusik für mein kleines "Spiel" verwenden.

@Sonecc
Vielen lieben Dank, dein Code funktioniert :)
D.h. nach homer65 läuft der Code jetzt, weil der HauptThread durch die Schleife nicht beeendet wird?


Vielen Dank für jede Hilfe :)
[Erledigt]
 

Sonecc

Gesperrter Benutzer
Richtig, der Thread wird niemals beendet. Stattdessen wird er immer wieder für 1 Sekunde schlafen gelegt. Nachteil an dem Code ist natürlich, dass das Programm nur "gekillt" werden kann. Du kannst es so wie es da steht nie normal beenden.
Wie du das einbaust musst du dir dann überlegen, die Grundidee hast du ja aber nun
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Dann07 Sound wird nicht abgespielt Java Basics - Anfänger-Themen 25
R Sound wird im Applet nicht abgespielt Java Basics - Anfänger-Themen 13
Pinhg Sound in Greenfoot Code einbinden Java Basics - Anfänger-Themen 2
SpigBin Sound einbinden bei Funktionsaufruf Java Basics - Anfänger-Themen 4
R MediaPlayer: Sound hat Verzögerung Java Basics - Anfänger-Themen 2
B Eclipse spielt Sound nicht ab Java Basics - Anfänger-Themen 12
CptK Erste Schritte Sound-Datei einbinden Java Basics - Anfänger-Themen 2
R Sound abspielen Java Basics - Anfänger-Themen 9
N kein Sound beim Öffnen der jar-Datei, in Eclipse schon Java Basics - Anfänger-Themen 1
S Sound stoppen und nach Pause wieder abspielen Java Basics - Anfänger-Themen 6
U Sound einfügen Java Basics - Anfänger-Themen 6
Anfänger2011 Input/Output Sound abspielen - ICH VERZWEIFLE!!!! Java Basics - Anfänger-Themen 24
K Sound speichern Java Basics - Anfänger-Themen 3
J Sound-Wiedergabe Java Basics - Anfänger-Themen 6
P Java Sound midi Java Basics - Anfänger-Themen 3
D Sound abspielen, wo muss die .wav liegen Java Basics - Anfänger-Themen 3
R Erste Schritte Exception bei erstellen von Java Sound Java Basics - Anfänger-Themen 23
2 Input/Output Sound aufnehmen/abspielen? Java Basics - Anfänger-Themen 2
SheldoN Sound abspielen nach Buttonklick in Applets Java Basics - Anfänger-Themen 17
J WAVE-file mit Java Sound erstellen Java Basics - Anfänger-Themen 9
F sound nur abspielen, wenn er nicht läuft Java Basics - Anfänger-Themen 6
B Sound-Wiedergabe Java Basics - Anfänger-Themen 4
F Spiel geht nicht mehr nach neuer Klasse Sound Java Basics - Anfänger-Themen 18
S kein sound? Java Basics - Anfänger-Themen 3
A Jlayer: Wie sound stoppen der in einem Thread läuft Java Basics - Anfänger-Themen 7
M Kein Sound in der .jar, davor schon Java Basics - Anfänger-Themen 6
M sound abspielen Java Basics - Anfänger-Themen 3
C Wav-Sound nur unter Window Java Basics - Anfänger-Themen 5
C Sound abspielen Java Basics - Anfänger-Themen 6
R Problem mit Sound Java Basics - Anfänger-Themen 5
R Sound Problem Java Basics - Anfänger-Themen 25
P Sound in Applikation (nicht Applet) Java Basics - Anfänger-Themen 5
Developer_X Java can't play mid sound? Java Basics - Anfänger-Themen 16
K kein Sound beim Öffnen der jar-Datei, in Eclipse schon Java Basics - Anfänger-Themen 2
X Benutzung von Mixer (Sound, nicht Küche!) Java Basics - Anfänger-Themen 2
V Serialisieren einer ShortMessage (javax.sound.midi) Java Basics - Anfänger-Themen 5
S Java Sound mit 24 bit/96 kHz Audio? Java Basics - Anfänger-Themen 12
0 Problem mit Bild und Sound im Applet Java Basics - Anfänger-Themen 12
D Sound in Frames möglich? EDIT Class Clip Java Basics - Anfänger-Themen 5
K Sound stoppt nicht Java Basics - Anfänger-Themen 3
M Sound Abspielen Java Basics - Anfänger-Themen 9
N Java Sound - Unsupported control type Java Basics - Anfänger-Themen 2
F Sound Interface Richtig implementieren Java Basics - Anfänger-Themen 4
G Sound/Endlosschleife/Abbruchproblem Java Basics - Anfänger-Themen 3
B Wo finde ich die Klasse javax.sound.sampled.AudioSystem Java Basics - Anfänger-Themen 7
G Sound bei buttonklick abspielen Java Basics - Anfänger-Themen 7
B Sound einbinden und abspielen Java Basics - Anfänger-Themen 9
D .wav Sound in einer simplen Applikation abspielen Java Basics - Anfänger-Themen 3
K Java Sound Application Java Basics - Anfänger-Themen 2
G Sound einbinden Java Basics - Anfänger-Themen 2
G sound in applikation Java Basics - Anfänger-Themen 7
G Sound Java Basics - Anfänger-Themen 13
megachucky wo gibts icons, images und sound dateien zum download? Java Basics - Anfänger-Themen 2
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
P Webseite vom Smartmeter wird nur unleserlich angezeigt Java Basics - Anfänger-Themen 7
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
Oneixee5 Maven Plugin wird 2 mal ausgeführt Java Basics - Anfänger-Themen 10
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
C Was tun wenn .class erwartet wird ? Java Basics - Anfänger-Themen 6
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
schemil053 Multithread - Input verrutscht während etwas ausgegeben wird Java Basics - Anfänger-Themen 6
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
_user_q Timer - ScheduledExecutorService wird schon vorher beendet Java Basics - Anfänger-Themen 5
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
sserio Math. Befehl wird rot markiert Java Basics - Anfänger-Themen 5
M Rechteck wird nicht angezeigt Java Basics - Anfänger-Themen 3
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
U Methode wird genutzt, ohne dass ich die aufrufe? Java Basics - Anfänger-Themen 4
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
M Was wird hier genau getestet? Java Basics - Anfänger-Themen 9
M Wie schreibe ich eine if-Verzweigung um, so dass ein Bedingungsoperator benutzt wird? Java Basics - Anfänger-Themen 9
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben