Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Wie ich soeben gelesen habe kann man keine MP3 öffnen mit AudioClip
-> Mit was kann man MP3 denn öffnen?
Und wie könnte man mit AudioClip herausfinden wenn es ein File gar nicht gibt? Denn die Methode springt ja sofort weiter, also gibt keine Auskunft darüber ob es das file öffnen konnte oder nicht...
Hab jetzt alles runtergeladen, JMF und API. Aber ich verstehe nicht wie ich jetzt einfach eine MP3 Datei abspielen kann. Ein Beispiel dazu habe ich nirgends gefunden..?!
Habt ihr mir irgend ein einfaches Beispiel? Weil in der API hats viele Klassen aber keine sagt mir etwas, besonders da es nie Beispiele hat..
Generell:
1. Ein Objekt vom Typ Player über die Manager-factory-Klasse erstellen.
Code:
Manager.createPlayer (url);
2. Player über start() starten.
3. Stoppen des Players: stop()
4. Beim Beenden deallocate() und close() aufrufen.
5. Anzeigen des VisualComponents: Die Methode Player#getVisualComponent darf erst aufgerufen werden, wenn der Player realited ist, deshalb muss man ein RealizeCompleteEvent abwarten.
6. Anzeigen des ControlPanels: Wie beim VisualComponent, die Methode heißt hier Player#getControlPanelComponent
7. Abwarten des Endes: Der Player sendet am Ende ein StopEvent.
Hier eine Beispielklasse (für Musik und Video):
Code:
import javax.media.*;
import java.io.File;
import java.awt.*;
import javax.swing.RootPaneContainer;
import java.io.IOException;
import java.net.MalformedURLException;
public class JMFPlayers implements ControllerListener
{
//f: Das Musik-File
//wait: Auf Musikende warten
//Die Methoden deallocate und close werden nicht aus dieser Methode ausgeführt.
public static Player playMusic (File f, boolean wait) throws IOException, NoPlayerException
{
try{
Player player = Manager.createPlayer (f.toURL()); //1
player.start(); //2
if (wait){
waitForMedia (player);
}
return player;
}catch (MalformedURLException e){return null;}
}
//f: Das Video oder Musik-File
//c: Zu diesem Container wird das VisualComponent, falls vorhanden, hinzugefügt
//constraints: mit diesen constraints
//wait: Auf Ende warten
public static Player playVideo (File f, final Container c, final Object constraints, boolean wait) throws IOException, NoPlayerException
{
try{
final Player player = Manager.createPlayer (f.toURL()); //1
player.addControllerListener (new ControllerListener(){ //5
public synchronized void controllerUpdate(ControllerEvent event) {
if (event instanceof RealizeCompleteEvent) {
Component comp;
if ((comp = player.getVisualComponent()) != null){
if (c instanceof RootPaneContainer)
((RootPaneContainer)c).getContentPane().add (comp, constraints);
else
c.add (comp);
}
c.validate();
}
}
});
player.start(); //2
if (wait){
waitForMedia (player);
}
return player;
}catch (MalformedURLException e){return null;}
}
private static void waitForMedia (Player p)
{
JMFPlayers jp = new JMFPlayers();
p.addControllerListener (jp);
while (!jp.stopped){ //7
try{
Thread.sleep (800);
}catch (InterruptedException e){}
}
p.stop(); //3
}
private JMFPlayers(){}
private boolean stopped = false;
public synchronized void controllerUpdate(ControllerEvent event)
{
if (event instanceof StopEvent && !(event instanceof StopByRequestEvent || event instanceof RestartingEvent)){
stopped = true;
}
}
}