Input/Output Problem mit dateizugriff innerhalb der .jar (Applet)

SkonroX

Aktives Mitglied
Hey,

habe folgendes problem:
Habe ein Applet auf einen Webserver geladen und möchte mit dem deklarierten audio player ein lied, welches innerhalb der .jar ist abspielen.. offline funktioniert alles einwadfrei, online jedoch passiert nichts mehr (bevor ich die musik eingebracht habe funktionierte es auch online). Da die einzige exception die ich einmal abfangen konnte darum handelte, dass ich keine zugriffsrechte habe für die .wav datei, denke ich dass es daran liegt.

Code:
Java:
        private static AudioInputStream	audioInputStream= null;
	private static Clip				audioClip		= null;
	private DataLine.Info			audioInfo		= null;

public void init()
	{
             InitializeMusic();
        }
private void InitializeMusic()
	{
		try
		{
			audioInputStream 	= AudioSystem.getAudioInputStream( Thread.currentThread().getContextClassLoader().getResource( "OneBrightMorning.wav" ).openStream() );
			//audioInputStream 	= AudioSystem.getAudioInputStream( new FileInputStream( Thread.currentThread().getContextClassLoader().getResource( "OneBrightMorning.wav" ).getPath() ) );
			audioClip 			= AudioSystem.getClip();
			this.audioInfo 		= new DataLine.Info( Clip.class, audioInputStream.getFormat() );
			this.audioLine 		= AudioSystem.getLine( this.audioInfo );
		}
		catch( FileNotFoundException e1 )
		{
			e1.printStackTrace();
		}
		catch( UnsupportedAudioFileException e1 )
		{
			e1.printStackTrace();
		}
		catch( IOException e1 )
		{
			e1.printStackTrace();
		}
		catch( LineUnavailableException e )
		{
			e.printStackTrace();
		}
	}

Das Thread.currentThread().getContextClassLoader().getResource( "" ) habe ich benutzt, weil es die einzige art war, durch welche ich auf die Bilder innerhalb der .jar zugreifen konnte in einer anderen klasse über den befehl:

Java:
this.logo 				= ImageIO.read( Thread.currentThread().getContextClassLoader().getResource( "Logo.jpg" ) );

das sichtbare des Applets kann man auf Link ansehen (nichts)

lg
 
Versuchs mal mit
Java:
audioInputStream    = AudioSystem.getAudioInputStream( getClass().getResourceAsStream( "OneBrightMorning.wav" ));
bzw:
Java:
this.logo               = ImageIO.read( getClass().getResource( "Logo.jpg" ) )
 
Ah ich habs schon selber gefunden, ich musste nur das .openStream bei der Audio Datei weglassen, sodass es nur eine URL ist 🙂

p.s. das mit dem getClass() geht nicht, ich weiß auch nicht wieso sie beim Applet sogar die Rechte weg gemacht haben, auf die eigene .jar zuzugreifen (zumindest auf einem web server).. naja trotzdem danke!

lg
 

Zurück
Oben