# MP3 Handler-Problem



## Cottonwood (13. Mai 2011)

Klingt irgendwie wie MP3 Codec Problem und ist auch die Fortsetzung dieser unendlichen Geschichte. Es werden nämlich leider immer noch einige wenige Titel nur auf einem PC abgespielt (der alle Titel abspielt). Der andere PC spielt jetzt fast alle Titel. Aber leider nur fast alle.

Der erste PC, der alle abspielt, verwendet immer den com.sun.media.content.*audio.mpeg*.Handler, der andere PC verwendet immer den com.sun.media.content.*unknown*.Handler.

Wie und wo kann ich beeinflussen, welchen Handler Java zum Abspielen von mp3 verwendet?

=============================================================
*// Edit:* Ich habe mal einen Test ins Programm eingebaut:

```
try {
			Class.forName("com.sun.media.content.audio.mpeg.Handler");
		} catch (ClassNotFoundException e) {except=e;
		} catch (Exception e) {except=e;
		} finally {
			if (except!=null) {
				System.out.println(except.toString());
				except=null;
			}else{
				System.out.println("com.sun.media.content.audio.mpeg.Handler found");
			}
		}
		try {
			Class.forName("com.sun.media.content.unknown.Handler");
		} catch (ClassNotFoundException e) {except=e;
		} catch (Exception e) {except=e;
		} finally {
			if (except!=null) {
				System.out.println(except.toString());
				except=null;
			}else{
				System.out.println("com.sun.media.content.unknown.Handler found");
			}
		}
```

findet auf beiden PC beide Klassen:

```
com.sun.media.content.audio.mpeg.Handler found
com.sun.media.content.unknown.Handler found
```

Es liegt also nicht daran, dass die entsprechende Klasse nicht gefunden wird. Es kann also nur irgendwo um die Reihenfolge in der Auswahl gehen.

=============================================================
*//Edit:* Ich habe was gefunden:

JMF 2.0 API (03/10/01): Class Manager Abschnitt Finding DataSources by Protocol

JMF 2.0 API (03/10/01): Class PackageManager

Kann das das sein, wonach ich suche? Kann ich damit die Klasse com.sun.media.content.unknown.Handler aus der Liste streichen? Wenn ja, wie?

=============================================================
*//Edit:* Ich habe ein Beispielprogramm zum Testen gefunden:
Koders Code Search: PackageManagerTest.java - Java

Ich schau mal, ob das die richtige Schiene ist.

=============================================================
*//Edit:* Leider läuft das Programm nicht. Rufe ich es vielleicht falsch auf? Die main-Methode ist ganz unten.
[JAVA=3]import java.util.Vector;

import javax.media.PackageManager;

import junit.framework.TestCase;

/**
 * 
 * @author Ken Larson
 *
 */
public class PackageManagerTest extends TestCase
{
	public void testPackageManager_Protocol()
	{

		synchronized (PackageManager.class)
		{

			assertTrue(PackageManager.getProtocolPrefixList().contains("javax"));
			assertTrue(PackageManager.getProtocolPrefixList().contains("com.sun"));
			assertTrue(PackageManager.getProtocolPrefixList().contains("com.ibm"));

		{
			assertStringVectorEquals(PackageManager.getProtocolPrefixList(), new String[] {"javax", "com.sun", "com.ibm"});
			final Vector v = PackageManager.getProtocolPrefixList();
			v.remove("javax");
			//dumpStringVector(PackageManager.getProtocolPrefixList());
			//assertStringVectorEquals(PackageManager.getProtocolPrefixList(), new String[] {"com.sun", "com.ibm"}); // this fails with the FMJ JmfRegistry because it copies the data.  This is an acceptable difference between JMF and FMJ.
			PackageManager.setProtocolPrefixList(v);
			assertStringVectorEquals(PackageManager.getProtocolPrefixList(), new String[] {"com.sun", "com.ibm", "javax"});

			//dumpStringVector(PackageManager.getProtocolPrefixList());
		}

		{
			assertStringVectorEquals(PackageManager.getProtocolPrefixList(), new String[] {"com.sun", "com.ibm", "javax"});
			final Vector v = PackageManager.getProtocolPrefixList();
			v.remove("com.sun");
			//dumpStringVector(PackageManager.getProtocolPrefixList());
			//assertStringVectorEquals(PackageManager.getProtocolPrefixList(), new String[] {"com.ibm", "javax"}); //  // this fails with the FMJ JmfRegistry because it copies the data.  This is an acceptable difference between JMF and FMJ.
			PackageManager.setProtocolPrefixList(v);
			assertStringVectorEquals(PackageManager.getProtocolPrefixList(), new String[] {"com.ibm", "javax"});

			//dumpStringVector(PackageManager.getProtocolPrefixList());
		}

		{
			assertStringVectorEquals(PackageManager.getProtocolPrefixList(), new String[] {"com.ibm", "javax"});
			final Vector v = PackageManager.getProtocolPrefixList();
			v.remove("com.ibm");
			//dumpStringVector(PackageManager.getProtocolPrefixList());
			//assertStringVectorEquals(PackageManager.getProtocolPrefixList(), new String[] {"javax"});  // this fails with the FMJ JmfRegistry because it copies the data.  This is an acceptable difference between JMF and FMJ.
			PackageManager.setProtocolPrefixList(v);
			assertStringVectorEquals(PackageManager.getProtocolPrefixList(), new String[] {"javax"});

			//dumpStringVector(PackageManager.getProtocolPrefixList());
		}

		{
			assertStringVectorEquals(PackageManager.getProtocolPrefixList(), new String[] {"javax"});
			final Vector v = PackageManager.getProtocolPrefixList();
			v.remove("javax");
			//dumpStringVector(PackageManager.getProtocolPrefixList());
			//assertStringVectorEquals(PackageManager.getProtocolPrefixList(), new String[] {}); // this fails with the FMJ JmfRegistry because it copies the data.  This is an acceptable difference between JMF and FMJ.
			PackageManager.setProtocolPrefixList(v);
			assertStringVectorEquals(PackageManager.getProtocolPrefixList(), new String[] {"javax"});

			//dumpStringVector(PackageManager.getProtocolPrefixList());
		}

		{
			assertStringVectorEquals(PackageManager.getProtocolPrefixList(), new String[] {"javax"});
			final Vector v = PackageManager.getProtocolPrefixList();
			v.add("abc");
			//dumpStringVector(PackageManager.getProtocolPrefixList());
			//assertStringVectorEquals(PackageManager.getProtocolPrefixList(), new String[] {"javax", "abc"}); // this fails with the FMJ JmfRegistry because it copies the data.  This is an acceptable difference between JMF and FMJ.
			PackageManager.setProtocolPrefixList(v);
			assertStringVectorEquals(PackageManager.getProtocolPrefixList(), new String[] {"javax", "abc"});

			//dumpStringVector(PackageManager.getProtocolPrefixList());
		}


		{
			final Vector v = new Vector();
			v.add("javax");
			v.add("com.sun");
			v.add("com.ibm");
			PackageManager.setProtocolPrefixList(v);

		}


		}


	}


	public void testPackageManager_Content()
	{

		synchronized (PackageManager.class)
		{

		assertTrue(PackageManager.getContentPrefixList().contains("javax"));
		assertTrue(PackageManager.getContentPrefixList().contains("com.sun"));
		assertTrue(PackageManager.getContentPrefixList().contains("com.ibm"));

		{
			assertStringVectorEquals(PackageManager.getContentPrefixList(), new String[] {"javax", "com.sun", "com.ibm"});
			final Vector v = PackageManager.getContentPrefixList();
			v.remove("javax");
			//dumpStringVector(PackageManager.getContentPrefixList());
			// assertStringVectorEquals(PackageManager.getContentPrefixList(), new String[] {"com.sun", "com.ibm"}); // this fails with the FMJ JmfRegistry because it copies the data.  This is an acceptable difference between JMF and FMJ.
			PackageManager.setContentPrefixList(v);
			assertStringVectorEquals(PackageManager.getContentPrefixList(), new String[] {"com.sun", "com.ibm", "javax"});

			//dumpStringVector(PackageManager.getContentPrefixList());
		}

		{
			assertStringVectorEquals(PackageManager.getContentPrefixList(), new String[] {"com.sun", "com.ibm", "javax"});
			final Vector v = PackageManager.getContentPrefixList();
			v.remove("com.sun");
			//dumpStringVector(PackageManager.getContentPrefixList());
			//assertStringVectorEquals(PackageManager.getContentPrefixList(), new String[] {"com.ibm", "javax"}); // this fails with the FMJ JmfRegistry because it copies the data.  This is an acceptable difference between JMF and FMJ.
			PackageManager.setContentPrefixList(v);
			assertStringVectorEquals(PackageManager.getContentPrefixList(), new String[] {"com.ibm", "javax"});

			//dumpStringVector(PackageManager.getContentPrefixList());
		}

		{
			assertStringVectorEquals(PackageManager.getContentPrefixList(), new String[] {"com.ibm", "javax"});
			final Vector v = PackageManager.getContentPrefixList();
			v.remove("com.ibm");
			//dumpStringVector(PackageManager.getContentPrefixList());
			// assertStringVectorEquals(PackageManager.getContentPrefixList(), new String[] {"javax"}); // this fails with the FMJ JmfRegistry because it copies the data.  This is an acceptable difference between JMF and FMJ.
			PackageManager.setContentPrefixList(v);
			assertStringVectorEquals(PackageManager.getContentPrefixList(), new String[] {"javax"});

			//dumpStringVector(PackageManager.getContentPrefixList());
		}

		{
			assertStringVectorEquals(PackageManager.getContentPrefixList(), new String[] {"javax"});
			final Vector v = PackageManager.getContentPrefixList();
			v.remove("javax");
			//dumpStringVector(PackageManager.getContentPrefixList());
			//assertStringVectorEquals(PackageManager.getContentPrefixList(), new String[] {}); // this fails with the FMJ JmfRegistry because it copies the data.  This is an acceptable difference between JMF and FMJ.
			PackageManager.setContentPrefixList(v);
			assertStringVectorEquals(PackageManager.getContentPrefixList(), new String[] {"javax"});

			//dumpStringVector(PackageManager.getContentPrefixList());
		}

		{
			assertStringVectorEquals(PackageManager.getContentPrefixList(), new String[] {"javax"});
			final Vector v = PackageManager.getContentPrefixList();
			v.add("abc");
			//dumpStringVector(PackageManager.getContentPrefixList());
			//assertStringVectorEquals(PackageManager.getContentPrefixList(), new String[] {"javax", "abc"}); // this fails with the FMJ JmfRegistry because it copies the data.  This is an acceptable difference between JMF and FMJ.
			PackageManager.setContentPrefixList(v);
			assertStringVectorEquals(PackageManager.getContentPrefixList(), new String[] {"javax", "abc"});

			//dumpStringVector(PackageManager.getContentPrefixList());
		}


		{
			final Vector v = new Vector();
			v.add("javax");
			v.add("com.sun");
			v.add("com.ibm");
			PackageManager.setContentPrefixList(v);
		}
		}


	}



	private void assertStringVectorEquals(Vector v1, String[] a)
	{
		assertEquals(v1 == null, a == null);
		if (v1 == null)
			return;

		assertEquals(v1.size(), a.length);
		for (int j = 0; j < v1.size(); ++j)
		{
			final String s1 = (String) v1.get(j);
			final String s2 = (String) a[j];
			assertEquals(s1, s2);
		}
	}
	private void assertStringVectorEquals(Vector v1, Vector v2)
	{
		assertEquals(v1 == null, v2 == null);
		if (v1 == null)
			return;

		assertEquals(v1.size(), v2.size());
		for (int j = 0; j < v1.size(); ++j)
		{
			final String s1 = (String) v1.get(j);
			final String s2 = (String) v2.get(j);
			assertEquals(s1, s2);
		}
	}

	private void dumpStringVector(Vector v1)
	{
		for (int i = 0; i < v1.size(); ++i)
		{	String s = (String) v1.get(i);
			System.out.println(s);
		}
	}

	private void dump()
	{
		System.out.println("getContentPrefixList:");
		final Vector v = PackageManager.getContentPrefixList();
		for (int i = 0; i < v.size(); ++i)
		{	System.out.println( v.get(i));
		}
	}
	public static void main(String[] args)
	{
		PackageManagerTest cht=new PackageManagerTest();
		cht.testPackageManager_Protocol();
	}
}[/code]

Hier das Ergebnis:

```
Exception in thread "main" junit.framework.ComparisonFailure: null expected:<[com.sun]> but was:<[javax]>
	at junit.framework.Assert.assertEquals(Assert.java:81)
	at junit.framework.Assert.assertEquals(Assert.java:87)
	at de.virginiacity.software.PackageManagerTest.assertStringVectorEquals(PackageManagerTest.java:199)
	at de.virginiacity.software.PackageManagerTest.testPackageManager_Protocol(PackageManagerTest.java:27)
	at de.virginiacity.software.PackageManagerTest.main(PackageManagerTest.java:236)
```


----------



## Cottonwood (14. Mai 2011)

Vergesst das mit dem Fehler erst mal. Das wird wohl zu meinem nächsten Problem. Auf dem anderen PC läuft das nämlich.:bahnhof:


```
com.sun
com.ibm
com.sun
com.ibm
javax
com.ibm
javax
com.ibm
javax
javax
javax
javax
javax
abc
javax
abc
```

Ich teste morgen weiter. Heute ist ESC (Eurovision Song Contest).


----------



## Cottonwood (15. Mai 2011)

Hat leider nicht geklappt. Wenn ich im folgenden Beispiel in den Zeilen 59 und 74 bei "//v.add("com.sun");" jeweils den "//" entferne, dann benutzt das Programm weiterhin den "unknown.Handler".

So, wie der Code jetzt ist, kommt er Fehler

```
Exception in thread "MusicPlayer4Juke2010" java.lang.NullPointerException
	at de.virginiacity.software.CheckTitles.checkThis(CheckTitles.java:69)
	at de.virginiacity.software.MusicPlayer.run(MusicPlayer.java:73)
	at java.lang.Thread.run(Unknown Source)
```
bei der Zeile
[java=69]		player1.addControllerListener(new ControllerListener() {[/code]

Hier das Programm:
[JAVA=3]import java.util.Vector;

import javax.media.PackageManager;

import junit.framework.TestCase;

/**
 * 
 * @author Ken Larson
 *
 */
public class JukeContentHandler extends TestCase
{
	private static boolean testsw;
	private static Exception except=null;

	public void setProtocol()
	{
		testsw=Parameters.retrieveBoolean("JukeContentHandler.testsw");

		try {
			Class.forName("com.sun.media.content.audio.mpeg.Handler");
		} catch (ClassNotFoundException e) {except=e;
		} catch (Exception e) {except=e;
		} finally {
			if (except!=null) {
				ErrorWindow.errorMsg("v000 "+except.toString());
				ErrorWindow.errorMsg("v000 Error: Class com.sun.media.content.audio.mpeg.Handler not found");
				except=null;
				ErrorWindow.systemExit(-1);
			}else{
				if (testsw) ErrorWindow.errorMsg("v000 com.sun.media.content.audio.mpeg.Handler found");
			}
		}
		try {
			Class.forName("com.sun.media.content.unknown.Handler");
		} catch (ClassNotFoundException e) {except=e;
		} catch (Exception e) {except=e;
		} finally {
			if (except!=null) {
				if (testsw) ErrorWindow.errorMsg("v000 "+except.toString());
				except=null;
				return;
			}else{
				if (testsw) ErrorWindow.errorMsg("v000 com.sun.media.content.unknown.Handler found");
			}
		}
		synchronized (PackageManager.class)
		{
			assertTrue(PackageManager.getProtocolPrefixList().contains("javax"));
			assertTrue(PackageManager.getProtocolPrefixList().contains("com.sun"));
			assertTrue(PackageManager.getProtocolPrefixList().contains("com.ibm"));
			{
				final Vector v = new Vector();
				v.add("javax");
				v.add("com.sun.media.content.audio.mpeg.Handler");
				//v.add("com.sun");
				v.add("com.ibm");
				PackageManager.setProtocolPrefixList(v);

				ErrorWindow.errorMsg("v000 result should be ...");
				dumpStringVector(PackageManager.getProtocolPrefixList());
			}

			assertTrue(PackageManager.getContentPrefixList().contains("javax"));
			assertTrue(PackageManager.getContentPrefixList().contains("com.sun"));
			assertTrue(PackageManager.getContentPrefixList().contains("com.ibm"));
			{
				final Vector v = new Vector();
				v.add("javax");
				v.add("com.sun.media.content.audio.mpeg.Handler");
				//v.add("com.sun");
				v.add("com.ibm");
				PackageManager.setContentPrefixList(v);
				ErrorWindow.errorMsg("v000 result should be ...");
				dumpStringVector(PackageManager.getContentPrefixList());
			}
		}
	}
	private void dumpStringVector(Vector v1)
	{
		for (int i = 0; i < v1.size(); ++i)
		{	String s = (String) v1.get(i);
		ErrorWindow.errorMsg("v000 "+s);
		}
	}
}[/code]

Hat irgend jemand noch eine Idee?


----------



## Ralph-Uwe (18. Mai 2011)

Hallo,

versuche mal das mp3plugin.jar in Dein Projekt einzubinden,
vielleicht hilft das.

http://www.java-forum.org/spiele-mu...intergrundsounds-soundeffekte.html#post698715

Gruß


----------



## Cottonwood (18. Mai 2011)

Ich hatte bereits javamp3-1_0.exe ablaufen lassen. Das hat das mp3plugin.jar in die Verzeichnisse C:\Programme\Java\jre6\lib\ext und C:\Programme\Java\jdk1.6.0_22\jree\lib\ext kopiert.

Ich hatte auch schon die Zeile *com.sun.media.codec.audio.mp3.javaDecoder* in die jmfregistry unter Plugins/Codec eingefügt. Das alles hatte bereits dazu geführt, dass mp3, die vorher überhaupt nicht akzeptiert wurden, einwandfrei abgespielt werden. Aber einige mp3, die sich vorher überhaupt nicht haben abspielen lassen, bleiben jetzt einfach hängen. Ohne Fehlermeldung oder irgend eine Unterbrechung im Programm.

Ich habe jetzt auch noch das mp3plugin.jar in Eclipse unter Properties/Java Build Path/Libraries eingefügt. Aber auch das hat nichts geändert.


----------



## Ralph-Uwe (18. Mai 2011)

Schade, war ein Versuch wert.

Brauchst Du unbedingt JMF?

Wenn nicht, probiere doch mal die Datei Sound.java aus.
Damit habe ich bis jetzt alle mp3 Dateien abspielen können.

Viel Erfolg!


----------



## Cottonwood (18. Mai 2011)

Sorry, dass es was gedauert hat. Ich habe derweil mittels Procmon.exe eine Liste aller Datei- und Registryzugriffe erstellt und diese nach Einträgen mit "handler" durchsucht. Hat leider keine Unterschiede zwischen den PC ergeben.ueh:

Ich brauche eine Klasse, die mp3 zu einem exakt festgelegten Zeitpunkt starten kann. Und das bietet JMF, weil ich da die Funktion "Realize" habe, die vor dem Start sicherstellt, dass der Sound bereit ist. Die Musik soll nämlich zeitgleich auf mehreren PC loslaufen.


----------



## Ralph-Uwe (18. Mai 2011)

streamst Du die Sounddatei, oder liegt sie auf jedem Rechner?

Wenn sie auf jedem Rechner liegt, wäre auch ein Trigger übers Netzwerk denkbar
um die Sounds zu starten.

Welches Programm die Dateien abspielt ist letztendlich egal.
Theoretisch auch mit dem Taskmanager der zeitgesteuert
einen Standardplayer wie Winamp startet.

Edit: Erkläre doch mal, was genau Du vor hast.


----------



## Cottonwood (18. Mai 2011)

Die Dateien werden jeweils über TCP/IP übertragen. Aber das ist auch nicht das Problem. Das Problem ist, dass ich sie zwar zeitgleich starten kann, welche mp3-Software ich auch verwende. Aber sie sollen auch zeitgleich beginnen zu spielen. Und das funzt nur, wenn die Software vorher alle Vorbereitungen getroffen hat, dass das Lied auch sofort beginnt, wenn ich start() aufrufe. Egal wie langsam oder schnell der Rechner ist. Und das geht eben mit dem JMF.

Ich habe inzwischen ein Protokoll aller Datei- und Registryzugriffe erstellt. Und zwar auf dem Rechner, wo's läuft und auf dem, wo der unknown.Handler verwendet wird. Aber ich habe bisher noch nicht rausbekommen, welcher Unterschied das Problem auslöst.


----------



## Cottonwood (19. Mai 2011)

Wesentlich erscheint mir das Ergebnis der Suche nach dem String "mp3". Ich habe ihn mal rausgefiltert, dann allerdings die Zeilen mit dem Musiktitel selber rausgeworfen. Hier das Ergebnis auf dem Notebook, wo's läuft:


```
"QueryDirectory","C:\WINDOWS\system32","SUCCESS","0: wscsvc.dll, 1: wscui.cpl, 2: wsfwDS.dll, 3: wshatm.dll, 4: wshbth.dll, 5: wshcon.dll, 6: wshde.dll, 7: wshext.dll, 8: wship6.dll, 9: wshisn.dll, 10: wshnetbs.dll, 11: wshom.ocx, 12: WshRm.dll, 13: wshtcpip.dll, 14: wsimd.cat, 15: wsimd.dll, 16: wsimd.inf, 17: wsimd.sys, 18: wsimdp.cat, 19: wsimdp.inf, 20: wsnmp32.dll, 21: wsock32.dll, 22: wstdecod.dll, 23: wtsapi32.dll, 24: wuapi.dll, 25: wuapi.dll.mui, 26: wuauclt.exe, 27: wuauclt1.exe, 28: wuaucpl.cpl, 29: wuaucpl.cpl.manifest, 30: wuaucpl.cpl.mui, 31: wuaueng.dll, 32: wuaueng.dll.mui, 33: wuaueng1.dll, 34: wuauserv.dll, 35: wucltui.dll, 36: wucltui.dll.mui, 37: wupdmgr.exe, 38: wups.dll, 39: wups2.dll, 40: wuweb.dll, 41: wzcdlg.dll, 42: wzcsapi.dll, 43: wzcsvc.dll, 44: x3daudio1_0.dll, 45: x3daudio1_1.dll, 46: X3DAudio1_2.dll, 47: X3DAudio1_3.dll, 48: X3DAudio1_4.dll, 49: X3DAudio1_5.dll, 50: X3DAudio1_6.dll, 51: xactengine2_0.dll, 52: xactengine2_1.dll, 53: xactengine2_10.dll, 54: xactengine2_2.dll, 55: xactengine2_3.dll, 56: xactengine2_4.dll, 57: xactengine2_5.dll, 58: xactengine2_6.dll, 59: xactengine2_7.dll, 60: xactengine2_8.dll, 61: xactengine2_9.dll, 62: xactengine3_0.dll, 63: xactengine3_1.dll, 64: xactengine3_2.dll, 65: xactengine3_3.dll, 66: xactengine3_4.dll, 67: xactengine3_5.dll, 68: xactsrv.dll, 69: XAPOFX1_0.dll, 70: XAPOFX1_1.dll, 71: XAPOFX1_2.dll, 72: XAPOFX1_3.dll, 73: XAudio2_0.dll, 74: XAudio2_1.dll, 75: XAudio2_2.dll, 76: XAudio2_3.dll, 77: XAudio2_4.dll, 78: XAudio2_5.dll, 79: xcopy.exe, 80: xenroll.dll, 81: xinput1_1.dll, 82: xinput1_2.dll, 83: xinput1_3.dll, 84: xinput9_1_0.dll, 85: xircom, 86: xmllite.dll, 87: xmlprov.dll, 88: xmlprovi.dll, 89: xolehlp.dll, 90: xpob2res.dll, 91: xpsp1res.dll, 92: xpsp2res.dll, 93: xpsp3res.dll, 94: xpsp4res.dll, 95: xpsshhdr.dll, 96: xpssvcs.dll, 97: XPSViewer, 98: zipfldr.dll, 99: zkasigct.dll"
"QueryDirectory","D:\java","SUCCESS","0: ., 1: .., 2: anmerkung.txt, 3: applet.KeyListenerTest.java, 4: Aufgabe.txt, 5: Auslieferung, 6: blkid.tab.txt, 7: blkid.txt, 8: CatFile.java, 9: Clock.java, 10: collectData.java, 11: eclipse, 12: Eingabe-applet.java, 13: Eingabe.html, 14: Everest-Report.txt, 15: hello.java, 16: java.txt, 17: JavaPlayer.txt, 18: javaSources.zip, 19: JSoft, 20: JSoft-PopupMenu.zip, 21: JSoft-vorAufräumen.zip, 22: JSoft.doc, 23: JSoft.doc.zip, 24: JSoft_20110407-0215.zip, 25: JSoft_20110407-2300.zip, 26: JSoft_20110408-0215.zip, 27: JSoft_20110408-1256.zip, 28: JSoft_20110409-0150.zip, 29: JSoft_20110410-0118.zip, 30: JSoft_20110410-0253.zip, 31: JSoft_20110411-0510.zip, 32: JSoft_20110411-2005.zip, 33: JSoft_20110412-0303.zip, 34: JSoft_20110412-2348.zip, 35: JSoft_20110417-1553.zip, 36: JSoft_20110423-1358.zip, 37: JSoft_20110501-0122.zip, 38: JSoft_20110503-0100.zip, 39: JSoft_20110503-0112.zip, 40: JSoft_20110503-2351.zip, 41: JSoft_20110505-0049.zip, 42: JSoft_20110507-0225.zip, 43: JSoft_20110514-0029.zip, 44: JSoft_20110514-0932.zip, 45: JSoft_20110515-1656.zip, 46: KeyboardPiano.java, 47: KeyTest.java, 48: Knoppix, 49: lwjgl, 50: lwjgl.zip, 51: MidiInstrument.java, 52: music, 53: MusicSystem.java, 54: nr-help-kdo.doc, 55: Player.java, 56: programmersbase.net, 57: readme.txt, 58: StringComparison.java, 59: StringOperationen.java, 60: tasten.txt, 61: TCP-IP, 62: Temp, 63: temporary1.mp3, 64: tutorialJavaPlayer.txt, 65: Verschlüsseln von Datenströmen.txt, 66: Verschlüsselung, 67: VideoVerleih.java"
"RegOpenKey","HKCU\Software\Classes\Media Type\Extensions\.mp3","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR\Media Type\Extensions\.mp3","SUCCESS","Desired Access: Read"
"RegQueryKey","HKCR\Media Type\Extensions\.mp3","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\Media Type\Extensions\.mp3","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegQueryValue","HKCR\Media Type\Extensions\.mp3\Source Filter","SUCCESS","Type: REG_SZ, Length: 78, Data: {E436EBB5-524F-11CE-9F53-0020AF0BA770}"
"RegQueryKey","HKCR\Media Type\Extensions\.mp3","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\Media Type\Extensions\.mp3","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegQueryValue","HKCR\Media Type\Extensions\.mp3\Media Type","SUCCESS","Type: REG_SZ, Length: 78, Data: {E436EB83-524F-11CE-9F53-0020AF0BA770}"
"RegQueryKey","HKCR\Media Type\Extensions\.mp3","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\Media Type\Extensions\.mp3","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegQueryValue","HKCR\Media Type\Extensions\.mp3\Subtype","SUCCESS","Type: REG_SZ, Length: 78, Data: {E436EB87-524F-11CE-9F53-0020AF0BA770}"
"RegCloseKey","HKCR\Media Type\Extensions\.mp3","SUCCESS",""
"RegOpenKey","HKCU\Software\Classes\Media Type\Extensions\.mp3","NAME NOT FOUND","Desired Access: Read"
"RegOpenKey","HKCR\Media Type\Extensions\.mp3","SUCCESS","Desired Access: Read"
"RegQueryKey","HKCR\Media Type\Extensions\.mp3","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\Media Type\Extensions\.mp3","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegQueryValue","HKCR\Media Type\Extensions\.mp3\Source Filter","SUCCESS","Type: REG_SZ, Length: 78, Data: {E436EBB5-524F-11CE-9F53-0020AF0BA770}"
"RegQueryKey","HKCR\Media Type\Extensions\.mp3","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\Media Type\Extensions\.mp3","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegQueryValue","HKCR\Media Type\Extensions\.mp3\Media Type","SUCCESS","Type: REG_SZ, Length: 78, Data: {E436EB83-524F-11CE-9F53-0020AF0BA770}"
"RegQueryKey","HKCR\Media Type\Extensions\.mp3","SUCCESS","Query: Name"
"RegOpenKey","HKCU\Software\Classes\Media Type\Extensions\.mp3","NAME NOT FOUND","Desired Access: Maximum Allowed"
"RegQueryValue","HKCR\Media Type\Extensions\.mp3\Subtype","SUCCESS","Type: REG_SZ, Length: 78, Data: {E436EB87-524F-11CE-9F53-0020AF0BA770}"
"RegCloseKey","HKCR\Media Type\Extensions\.mp3","SUCCESS",""
```

Und hier das Ergebnis auf dem PC, wo's nicht läuft:

```
"QueryDirectory","C:\Dokumente und Einstellungen\Admin","SUCCESS","0: ., 1: .., 2: .ExcelsiorJET, 3: Anwendungsdaten, 4: Cookies, 5: Desktop, 6: Druckumgebung, 7: Eigene Dateien, 8: Favoriten, 9: IETldCache, 10: Juke2010.png, 11: Juke2010_Musikliste.txt, 12: Juke2010_Parameters.txt, 13: juke2010_protokoll.txt, 14: jukeWindowSize, 15: Lokale Einstellungen, 16: Netzwerkumgebung, 17: NTUSER.DAT, 18: ntuser.dat.LOG, 19: ntuser.ini, 20: PrivacIE, 21: Recent, 22: SendTo, 23: Startmenü, 24: temporary.mp3, 25: temporary1.mp3, 26: temporary2.mp3, 27: v1.5.067 MusicPlayerClient, 28: Vorlagen, 29: WINDOWS, 30: workspace"
"QueryDirectory","C:\Programme\Java\jre6\lib\ext","SUCCESS","0: ., 1: .., 2: dnsns.jar, 3: jmf.jar, 4: localedata.jar, 5: meta-index, 6: mp3plugin.jar, 7: sound.jar, 8: sunjce_provider.jar, 9: sunmscapi.jar, 10: sunpkcs11.jar"
"CreateFile","C:\Programme\Java\jre6\lib\ext\MP3PLUGIN.JAR","SUCCESS","Desired Access: Read Data/List Directory, Read Attributes, Disposition: Open, Options: Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened"
"CreateFileMapping","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","SyncType: SyncTypeCreateSection, PageProtection: PAGE_READWRITE"
"QueryStandardInformationFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","AllocationSize: 86.016, EndOfFile: 82.415, NumberOfLinks: 1, DeletePending: False, Directory: False"
"CreateFileMapping","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","SyncType: SyncTypeOther"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 0, Length: 82.415, I/O Flags: Non-cached, Paging I/O"
"CloseFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS",""
"QueryDirectory","C:\Programme\Java\jre6\lib\ext","SUCCESS","0: .., 1: dnsns.jar, 2: jmf.jar, 3: localedata.jar, 4: meta-index, 5: mp3plugin.jar, 6: sound.jar, 7: sunjce_provider.jar, 8: sunmscapi.jar, 9: sunpkcs11.jar"
"QueryDirectory","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Filter: mp3plugin.jar, 1: mp3plugin.jar"
"QueryOpen","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","CreationTime: 13.05.2011 00:46:53, LastAccessTime: 13.05.2011 15:06:25, LastWriteTime: 16.08.2004 11:48:46, ChangeTime: 18.05.2011 12:08:48, AllocationSize: 86.016, EndOfFile: 82.415, FileAttributes: N"
"QueryOpen","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","CreationTime: 13.05.2011 00:46:53, LastAccessTime: 13.05.2011 15:06:25, LastWriteTime: 16.08.2004 11:48:46, ChangeTime: 18.05.2011 12:08:48, AllocationSize: 86.016, EndOfFile: 82.415, FileAttributes: N"
"CreateFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Desired Access: Read Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened"
"QueryBasicInformationFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","CreationTime: 13.05.2011 00:46:53, LastAccessTime: 13.05.2011 15:06:25, LastWriteTime: 16.08.2004 11:48:46, ChangeTime: 18.05.2011 12:08:48, FileAttributes: N"
"CloseFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS",""
"CreateFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened"
"QueryStandardInformationFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","AllocationSize: 86.016, EndOfFile: 82.415, NumberOfLinks: 1, DeletePending: False, Directory: False"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 82.287, Length: 128"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 79.457, Length: 2.936"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 79.516, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 61, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 111, Length: 71"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 79.582, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 79.516, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 61, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 111, Length: 71"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 79.457, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 79.516, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 61, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 111, Length: 71"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 80.295, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 80.359, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 18.103, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 16.384, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 18.190, Length: 49"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 80.462, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 18.255, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 18.351, Length: 57"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 79.582, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 198, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 275, Length: 3.386"
"QueryDirectory","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Filter: mp3plugin.jar, 1: mp3plugin.jar"
"QueryOpen","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","CreationTime: 13.05.2011 00:46:53, LastAccessTime: 13.05.2011 15:06:25, LastWriteTime: 16.08.2004 11:48:46, ChangeTime: 18.05.2011 12:08:48, AllocationSize: 86.016, EndOfFile: 82.415, FileAttributes: N"
"QueryOpen","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","CreationTime: 13.05.2011 00:46:53, LastAccessTime: 13.05.2011 15:06:25, LastWriteTime: 16.08.2004 11:48:46, ChangeTime: 18.05.2011 12:08:48, AllocationSize: 86.016, EndOfFile: 82.415, FileAttributes: N"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 80.925, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 24.337, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 20.480, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 24.399, Length: 577"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 24.576, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 80.633, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 18.467, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 18.525, Length: 871"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 80.707, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 19.412, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 19.468, Length: 3.443"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 82.105, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 59.364, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 57.344, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 59.414, Length: 425"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 80.779, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 22.927, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 22.983, Length: 436"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 81.709, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 43.540, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 40.960, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 43.590, Length: 520"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 81.379, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 33.887, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 32.768, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 33.937, Length: 956"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 82.039, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 59.030, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 59.080, Length: 268"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 81.313, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 33.566, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 33.616, Length: 255"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 81.445, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 34.909, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 34.959, Length: 7.520"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 36.864, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 81.242, Length: 160"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 31.051, Length: 30"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 28.672, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O"
"ReadFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS","Offset: 31.106, Length: 2.444"
"CloseFile","C:\Programme\Java\jre6\lib\ext\mp3plugin.jar","SUCCESS",""
```

Was auffällt ist, dass es sich einmal praktisch nur um Registry-Zugriffe handelt, die im anderen Fall komplett fehlen. Dort finden sich praktisch nur Dateizugriffe auf das mp3plugin.jar handelt, die wiederum dort fehlen, wo's läuft.


----------



## Ralph-Uwe (19. Mai 2011)

Ich fürchte, dass ich leider nicht weiter helfen kann.

Trotzdem weiterhin viel Erfolg.

Gruß


----------



## Cottonwood (19. Mai 2011)

Trotzdem danke.

Falls jemand damit etwas anfangen kann, hier das komplette Log:
Notebook: http://www.c-d-j.de/java/Logfile-filtered-mp3.CSV.txt
PC: http://www.c-d-j.de/java/Logfile-eee-filtered-mp3.CSV.txt


----------



## Cottonwood (20. Mai 2011)

Puh, war das ein Akt. Aber ich habe jetzt eine Lösung. Wäre das nicht von Anfang an auf dem Notebook problemlos gelaufen, so hätte ich sicher irgend wann aufgegeben.

Ich hatte zunächst die auf dem PC laufende Version so ähnlich wie möglich mit der Notebook-Installation gemacht. Ich hatte also die JavaMP3-Extension wieder entfernt. Dann machte ich einen neuen Vergleich der Datei- und Registryzugriffe. Den reduzierte ich um alles, was mir unwesentlich erschien. Das führte zu folgender Restliste:


```
01    "HKCR\CLSID\{E21BE468-5C18-43EB-B0CC-DB93A847D769}\InprocServer32\(Default)","SUCCESS","Type: REG_SZ, Length: 104, Data: C:\Programme\Winamp Remote\bin\RealMediaSplitter.ax"
   01 "HKCR\CLSID\{E21BE468-5C18-43EB-B0CC-DB93A847D769}\InprocServer32\(Default)","SUCCESS","Type: REG_SZ, Length: 82, Data: C:\WINDOWS\system32\RealMediaSplitter.ax"
   03 "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\midi1","NAME NOT FOUND","Length: 536"
02    "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\midi1","SUCCESS","Type: REG_SZ, Length: 22, Data: wdmaud.drv"
   04 "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\midi2","NAME NOT FOUND","Length: 536"
03    "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\midi2","SUCCESS","Type: REG_SZ, Length: 22, Data: wdmaud.drv"
   05 "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\midi3","NAME NOT FOUND","Length: 536"
04    "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\midi3","SUCCESS","Type: REG_SZ, Length: 22, Data: wdmaud.drv"
   06 "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\mixer1","NAME NOT FOUND","Length: 536"
05    "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\mixer1","SUCCESS","Type: REG_SZ, Length: 22, Data: wdmaud.drv"
   07 "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\mixer2","NAME NOT FOUND","Length: 536"
06    "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\mixer2","SUCCESS","Type: REG_SZ, Length: 22, Data: wdmaud.drv"
   08 "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\mixer3","NAME NOT FOUND","Length: 536"
07    "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\mixer3","SUCCESS","Type: REG_SZ, Length: 22, Data: wdmaud.drv"
   09 "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\msacm.l3acm","SUCCESS","Type: REG_SZ, Length: 26, Data: l3codecx.acm"
08    "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\msacm.l3acm","SUCCESS","Type: REG_SZ, Length: 66, Data: C:\WINDOWS\system32\l3codeca.acm"
   10 "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\wave1","NAME NOT FOUND","Length: 536"
09    "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\wave1","SUCCESS","Type: REG_SZ, Length: 22, Data: wdmaud.drv"
   12 "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\wave2","NAME NOT FOUND","Length: 536"
10    "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\wave2","SUCCESS","Type: REG_SZ, Length: 22, Data: wdmaud.drv"
   14 "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\wave3","NAME NOT FOUND","Length: 536"
11    "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\wave3","SUCCESS","Type: REG_SZ, Length: 22, Data: wdmaud.drv"
```

Die Zahlen in der 1. Spalte signalisieren das Ergebnis vom Notebook, die anderen das vom PC.

Zunächst fällt auf, dass am Notebook auf einen Key von Winamp Remote zugegriffen wird. Also habe ich folgende Aktionen dorchgeführt:

1) Deinstallation von allen Java Komponenten
2) Installation von Winanp Remote
3) Update der Registry mit dem folgenden Patch
4) Installation von JRE/JDK und JMF, *aber keine Installation der JavaMPE Extension!!!*

Registry Patch:

```
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32]
"midi1"="wdmaud.drv"
"midi2"="wdmaud.drv"
"midi3"="wdmaud.drv"
"mixer1"="wdmaud.drv"
"mixer2"="wdmaud.drv"
"mixer3"="wdmaud.drv"
"wave1"="wdmaud.drv"
"wave2"="wdmaud.drv"
"wave3"="wdmaud.drv"
```

Und jetzt läuft's. :toll:

Danke an alle, die sich Gedanken gemacht haben.


----------



## Cottonwood (27. Mai 2011)

Hintergrund:
Solange die JavaMP3 extension (JLayer) com.sun.media.content.unknown.Handler benutzt, gibt es weiterhin Probleme mit dem Abspielen einiger mp3. Mit der Datei RealMediaSplitter.ax von Winamp Remote anstatt JLayer benutzt Java den com.sun.media.content.audio.mpeg.Handler, der einwandfrei arbeitet. Um herauszufinden, welcher Handler benutzt wird, reicht ein System.out.println im ControllerListener.


```
player.addControllerListener(new ControllerAdapter() {
```

Dieser kann z. B. in der folgenden event handling Routine untergebracht werden:


```
public void transition(TransitionEvent e) {
				System.out.println(Thread.currentThread().getName());
```


Die einzige Datei, die von der Winamp Remote Installation wirklich erforderlich ist, ist "Winamp Remote\bin\RealMediaSplitter.ax" (328kB, vom 2006-11-06). Diese kann in ein anderes Verzeichnis kopiert werden. Danach kann Winamp Remote deinstalliert werden. Jetzt muss noch der unten stehende Registry-Patch modifiziert werden, so dass der Wert von @ auf die Kopie der Datei verweist.


```
Windows Registry Editor Version 5.00
 
[HKEY_CLASSES_ROOT\CLSID{E21BE468-5C18-43EB-B0CC-DB93A847D769}\InprocServer32]
@="C:\\Programme\\xxxxxxxx\\yyyyyyyy\\RealMediaSplitter.ax"
```



Es kann sein, dass das Java-Programm zweimal nacheinander gestartet werden muss, bevor die Änderung wirksam wird. Das scheint nach Registry-Änderungen öfter erforderlich zu sein.

Der Name und die Struktur des gewählten Verzeichnisses sollte ohne Bedeutung sein. Bei mir funktionierte es erstmalig mit der Struktur im Patch. Aber der Grund dafür kann sein, dass ich zu dieser Zeit noch nichts davon wusste, dass zweimaliges Starten der Java-Anwendung erforderlich sein kann.

Die komplette Deinstallation aller Java-Komponenten mag mit diesem Wissen ebenfalls nicht notwendig sein. Aber ich bin nicht sicher, ob dies auch gilt, wenn die Installation der JavaMP3-Extension (JLayer) bereits gemacht wurde. Es kann sein, dass JLayer in der Registry Einträge zurück lässt, die noch wirksam sind, bis eine komplett neue Installation von Java erfolgt ist.

Ich würde mich über eine Antwort freuen, wenn diese Informationen jemandem geholfen haben. Danke schon jetzt dafür.


----------

