audio abspielen

hans-sonny

Bekanntes Mitglied
hi leute ich hab ein kleines programm geschrieben welches mir einfach eine mp3 datei abspielen soll

leider meckert es beim compilieren immer

programm:
Java:
public class Audioabspielen {
   // private Audioabspielen () { }
    
    public static void main (final String[] args) {
	// URL vom Lied
	URL url = new URL("file://c:/Users/Holz/Downloads/JewlsAndSeriusMusik/intro.mp3");
	
	//neues AudioClip element
	AudioClip clip = Applet.newAudioClip(url);
	
	//abspielen
	clip.play();
    }
}



fehlermeldung beim compilieren ist immer: unreported exception java.ne.MalformedURLException; must becaught or declared to be thrown ....

und meckern tuts an der stelle bei new URL


jemand ne idee wieso hier gemeckert wird?
 
Steht doch in der Fehlermeldung. Du machst am besten eine Try-Catch-Block um die Zeile mit dem
Code:
new URL
. Nicht so gut wäre, aber es funktioniert auch:
Code:
public static void main (final String[] args) [b]throws Exception[/b]
 
Weil eine Exception geworfen, aber nicht behandelt wird.

Du musst die entweder abfangen oder hinschreiben, dass sie weitergeleitet wird.
 
Du kannst es ja gar nicht kompilieren solange da ein Fehler drin ist! Warum soll es also Musik machen?

Versuchs mal so:

Java:
import java.applet.Applet;
import java.applet.AudioClip;
import java.net.MalformedURLException;
import java.net.URL;

public class Audioabspielen {
	// private Audioabspielen () { }

	public static void main (final String[] args) {
		// URL vom Lied
		URL url = null;
		try {
			url = new URL("file://c:/Users/Holz/Downloads/JewlsAndSeriusMusik/intro.mp3");
		} catch (MalformedURLException e) {
			e.printStackTrace();
			return;
		}

		//neues AudioClip element
		AudioClip clip = Applet.newAudioClip(url);

		//abspielen
		clip.play();
	}
}
 
Das hab ich auch bemerkt - du musst jemanden fragen der den AudioClip kennt oder nach Implementationen suchen - ich hab noch nie etwas damit gemacht

Vielleicht ist auch nur die Lautstärke für diesen Kanal auf 0 oder was auch immer ...
 
@Andi_CH:
in erster Linie hast du ein konkretes Objekt vor dir liegen,
wenn das vom Typ eines Interfaces ist und es bisher nicht schon Compilerfehler/ Laufzeitexceptions gab,
dann hat das Interface schlicht die Bedeutung dass das aktuelle Objekt die entsprechenden Methoden hat, man sie aufrufen kann,

von welcher konkreten oder anonyme nKlasse das Objekt ist, ist egal, allein wichtig ist, dass das Interface zur Verfügung steht,

das ist ja der Sinn von Interfacen, ansonsten bräuchte man sie kaum?
(außer noch auf Compiler-Ebene um sich beim Programmieren einer Klasse zu erinnern, dass bestimmte Methoden noch fehlen)
 
Ich habe halt erwartet, dass Interfaces abstrakt gehalten sind.
(Hi hi - merkt man es? Ich habe noch nie eines genau angeschaut, aber man hat bekanntlich nie ausgelernt)
 
das find ich cool dass das nicht gehen soll weil ich hab hier ein java einsteiger buch liegen wo ich das gefunden habe .... hier wird das so verwendet
 
Gib es mal bei google ein - Ich hab ein Posting von anno domini 1999 gefunden in dem das auch genau so beschrieben ist, aber 10 Jahre später ist alles anders.

Ich hab oben einen Link eingefügt, den ich aber nicht genau studiert habe. Dort ist beschrieben welche Library man verwenden soll etc. Aber es scheint wesentlich komplizierter zu sein als nur gerade 5 Zeilen.

Lies auch mal hier

EDIT: Schau dir doch die Datei AudioClip mal im Sourcecode an - da ist wirklich nichts drin und hier hätten wir auch einen Hinweis gefunden - da steht "Interface" und das sagt alles.
 
Zuletzt bearbeitet:
Lies auf dem Link den ich gepostet habe. Es ist aufwändiger als du meinst - welchen Decoder willst du verwenden etc --- und auf dem letzten Link ist ein Thread zu genau dem Thema - da hat ja jemand einen MP3 Player geschrieben.
Schau dich dort um.
 
kannst es ja mal ausprobieren. Bei mir funktioniert es. Außerdem kann ich mir vorstellen, dass es nichts abspielt, weil das Programm ja gleich wieder zu Ende ist und das Abspielen in einem Nebenprozess abläuft, der mit beendet wird, wenn das Programm endet (Daemon).
Versuch es mal so:
Java:
import java.applet.Applet;
import java.applet.AudioClip;
import java.net.MalformedURLException;
import java.net.URL;
 
public class Audioabspielen {
    // private Audioabspielen () { }
 
    public static void main (final String[] args) {
        // URL vom Lied
        URL url = null;
        try {
            url = new URL("file://c:/Users/Holz/Downloads/JewlsAndSeriusMusik/intro.mp3");
        } catch (MalformedURLException e) {
            e.printStackTrace();
            return;
        }
 
        //neues AudioClip element
        AudioClip clip = Applet.newAudioClip(url);
 
        //abspielen
        clip.play();
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
 

Zurück
Oben