# wma Datei abspielen: java.io.IOException: Resetting to invalid mark



## h4x0r (30. Okt 2012)

Hallo,

ich versuche eine .wma Datei abzuspielen und benutze dazu die jlgui Libary.
D.h. ich habe        

basicplayer.jar
commons-logging-api-1.1.1.jar
jl1.0.1.jar
mp3spi1.9.5.jar
tritonus_share-0.3.6
vorbisspi1.0.3.jar

eingebunden.

Mit mp3 Dateien funktioniert es bereits ohne Probleme. Bei wmas bekomme ich folgende Ausgabe und Exception:

30.10.2012 19:04:17 javazoom.jlgui.basicplayer.BasicPlayer open
INFO: open(C:\Users\majestic\Music\Unbekannter Interpret\Unbekanntes Album (05.10.2012 19-27-44)\01 Titelnummer 1.wma)
java.io.IOException: Resetting to invalid mark
	at java.io.BufferedInputStream.reset(BufferedInputStream.java:416)
	at org.tritonus.share.sampled.file.TAudioFileReader.getAudioInputStream(TAudioFileReader.java:325)
	at javazoom.spi.mpeg.sampled.file.MpegAudioFileReader.getAudioInputStream(Unknown Source)
	at javazoom.spi.mpeg.sampled.file.MpegAudioFileReader.getAudioInputStream(Unknown Source)
	at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1162)
	at javazoom.jlgui.basicplayer.BasicPlayer.initAudioInputStream(Unknown Source)
	at javazoom.jlgui.basicplayer.BasicPlayer.initAudioInputStream(Unknown Source)
	at javazoom.jlgui.basicplayer.BasicPlayer.open(Unknown Source)
	at musiclib.Player.MyPlayer.<init>(MyPlayer.java:19)
	at musiclib.MusicLibApp.startup(MusicLibApp.java:19)
	at org.jdesktop.application.Application$1.run(Application.java:171)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Meine Klasse:


```
package musiclib.Player;
import java.io.File;
import javazoom.jlgui.basicplayer.BasicController;
import javazoom.jlgui.basicplayer.BasicPlayer;
import javazoom.jlgui.basicplayer.BasicPlayerException;

public class MyPlayer {
    public MyPlayer(String filepath) {
        try {
            BasicPlayer player = new BasicPlayer();
            BasicController bc = (BasicController)player;
            bc.open(new File(filepath));
            bc.play();
        }
        catch (BasicPlayerException ex) {
            ex.printStackTrace();
        }
    }
}
```


----------



## SlaterB (31. Okt 2012)

org.tritonus.share.sampled.file.TAudioFileReader
IOException: Resetting to invalid mark
usw. kann man suchen, den Fehler gibts häufiger

wie so oft eine Frage der richtigen Zusammenstellung der Libraries, hat mit Java wenig zu tun, 
aus Java-Basics jedenfalls gleich zu verschieben,

ob gerade hier im Forum auch jemand dazu die neue Meinung hat? denkbar natürlich schon,

soweit ich bisher gesucht habe wird am ehesten der Aufstieg von mp3spi1.9.4.jar auf mp3spi1.9.5.jar empfohlen,
was du ja schon hast..

mit der Zeilennummer 325 in 
org.tritonus.share.sampled.file.TAudioFileReader.getAudioInputStream(TAudioFileReader.java:325)
gibt es weniger Themen, wird es ziemlich dünn an Lösungen

ich habe noch etwas allgemein nach den Library-Kombinationen geschaut und mir fiel auf dass es auch
basicplayer3.0.jar statt basicplayer.jar gibt, aber nicht direkt klar ob besser oder schlechter..

bist du dir sicher mit deiner Library-Zusammenstellung, nach einer bestimmten Anleitung?

-----

ach ja, Java 1.5 oder kleiner? was liefert 
System.out.println(System.getProperty("java.version"));
im Programm?
wobei die 1.5-Libraries vielleicht gar nicht mit 1.4 laufen


----------



## h4x0r (31. Okt 2012)

Hallo,

das Programm gibt 1.6.0_27 als Version aus.

Habe die basicplayer3.0.jar neu heruntergeladen und eingebunden, leider immernoch der selbe Fehler.

Die Packages org.tritonus.share.sampled.file.TAudioFileReader liegen in der tritonus_share-0.3.6.jar. 
Da gibt es aber keine neue Version aber dafür jede menge Plugins (Tritonus: Plug-ins), leider keine die etwas mit .wma Dateien zu run haben.

Ich bin für jede Hilfe dankbar.


----------



## SlaterB (31. Okt 2012)

1.6.0_27 ist schon ziemlich hoch,
es sollte besser keine Rolle spielen aber als Strohhalm, bevor du dich ganz langweilst, kannst du ja noch eine Java-Version etwas eher aus damaliger Zeit versuchen, irgendwas Richtung 1.5.x, falls überhaupt zu finden

obwohl, Links wie 
Pelzkuh.de - Techblog: Funkstille aufgehoben - Javazoom MP3 Player
sind von Oktober 2012, das sollte dann wohl aufgefallen sein

und MP3 funktioniert bei dir ja,
ich komma langsam selber zum Kernthema 'wma'..

ich finde kein Beispiel im Internet dazu, hast du das je irgendwo gesehen?
jlGui - BasicPlayer developer guide
schreibt


> Audio format support :
> You might wonder about audio format (MP3, OGG Vorbis, WAV ...) support classes. You won't see any in source code because jlGui relies on JavaSound SPI (Service Provider Interface) architecture. It's a plugin architecture that loads audio codecs (SPI) automatically on JVM startup. Matching JAR files must be included in CLASSPATH. That's way, adding a new audio format is really easy and has no impact of BasicPlayer source code.





> Required libraries :
> 
> OGG Vorbis support : jogg-0.0.7.jar, jorbis-0.0.15.jar, vorbisspi1.0.2.jar.
> MP3 support : jl1.0.jar, mp3sp.1.9.4.jar. [fehlendes i, Version eh zu alt]


aber zu WMA-Support schweigt es sich aus,
vielleicht weil es eben kein freies Format ist, da darf man auch gar keinen Download-Link anbieten?
gibt es womöglich gar nicht?

naja, ne Lösung habe ich bei all dem Gerede nicht 
vielleicht verzichtest du auf WMA, sofern anscheinend der Rest der Welt es bisher auch muss, im freien Java


----------



## h4x0r (31. Okt 2012)

Hallo,

ich habe jetzt mal das ganze mit ner alten Java Version getestet und es kommt immernoch der gleiche Effekt:

1.5.0_22
java.io.IOException: Resetting to invalid mark
	at java.io.BufferedInputStream.reset(Unknown Source)
	at org.tritonus.share.sampled.file.TAudioFileReader.getAudioInputStream(TAudioFileReader.java:325)
	at javazoom.spi.mpeg.sampled.file.MpegAudioFileReader.getAudioInputStream(Unknown Source)
	at javazoom.spi.mpeg.sampled.file.MpegAudioFileReader.getAudioInputStream(Unknown Source)
	at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
	at Player.testwma.<init>(testwma.java:29)
	at Main.main(Main.java:17)


----------



## maki (31. Okt 2012)

Java Sound Resources: FAQ: Audio Programming

Scheint als würde Java Sound kein WMA unterstützen.


----------



## h4x0r (31. Okt 2012)

ok in dem Fall kein .wma ...

Danke für eure Hilfe!


----------



## pelzkuh (1. Nov 2012)

Sieht wirklich so aus als ob es keinen Wrapper für WMA gibt. Es gibt allerdings das Java Projekt Jajuk Advanced Jukebox - Official Site - jajuk ... dort ist WMA als Format aufgelistet und der Code ist auf Sourceforge gehostet. Da könnte man nachsehen wie es da gelöst ist.


----------



## dheerajthe1 (20. Dez 2012)

pelzkuh hat gesagt.:


> Sieht wirklich so aus als ob es keinen Wrapper für WMA gibt. Es gibt allerdings das Java Projekt Jajuk Advanced Jukebox - Official Site - jajuk ... dort ist WMA als Format aufgelistet und der Code ist auf Sourceforge gehostet. Da könnte man nachsehen wie es da gelöst ist.



Ok this is from Google Translate 
Ich spreche kein Deutsch, aber das Problem durch den Austausch mp3spi1.9.4.jar mit mp3spi1.9.5.jar fixiert

I don't speak German but the issue is fixed by replacing mp3spi1.9.4.jar with mp3spi1.9.5.jar
*
ISSUE FIXED!! 

Use mp3spi1.9.5.jar*


----------



## h4x0r (21. Dez 2012)

Hi dheerajthe1,

First German second English ok ?

German:
Ich habe das auf einem Windows 7 32bit Rechner ausprobiert mit Java 1.7.0_09. Die Anwendung läuft bei mir in Netbeans.
Ich nutze mp3spi1.9.5.jar und bekomme trozdem den fehler java.io.IOException: Resetting to invalid mark.
Kann es sein das sich jede .wma Datei anderst verhält?
Ich habe die Datei mit Windows Media Player von einer Audio CD kopiert.

English:
I tryed this on Windows 7 32bit with Java 1.7.0_09. I am developing in Netbeans and using mp3spi1.9.5.jar. I still getting this error:  java.io.IOException: Resetting to invalid mark. 
Is every .wma different?
I ripped this .wma file from Audio CD using Windows Media Player 12.0.761.


----------



## Spacerat (28. Dez 2012)

Soweit ich weis, spielt Javazoom kein WMA.
Java Open Source Projects

Hast du das schon mal getestet?
JAVE - Java Audio Video Encoder e Transcoder
das benötigt allerdings eine installierte ffmpeg-lib.


----------



## s4ke (1. Jan 2013)

Schau dir mal das hier an (immer noch in Entwicklung):

http://www.java-forum.org/spiele-mu...886-vorstellung-hotsound-meinung-gefragt.html

Damit kannst du eigentlich ziemlich einfach Musik abspielen. Und zusammen mit Xuggler kannst du so gut wie alles abspielen, was du willst.

https://github.com/Hotware/HotSoundExamples/tree/master/src/de/hotware/hotsound/examples
https://github.com/Hotware/HotSoundXugglerExtension


----------

