WinFuture-Forum.de: [java] Winamp Steuern - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[java] Winamp Steuern JNI macht Probleme


#1 Mitglied ist offline   m4rkus 

  • Gruppe: aktive Mitglieder
  • Beiträge: 309
  • Beigetreten: 28. Juni 06
  • Reputation: 0

geschrieben 24. Mai 2008 - 08:34

Hallo miteinander,

ich versuche grade Winamp aus nem Java Programm raus zu steuern. Natürlich braucht man dazu dann das jni, und hier hab ich einige probleme....

Ich poste mal meinen Code:

package mybrary;

public class WinampHelper 
{
				static {
								// Loads the header
								System.loadLibrary("WinampHelper");
				}
				
				public native void printTrackInfo();
				
				public WinampHelper() {
								printTrackInfo();
				}				
}



die methode in c++ (nicht von mir, hab ich ausm netz...):

JNIEXPORT void JNICALL 
Java_WinampHelper_printTrackInfo (JNIEnv *env, jobject obj)
{
	char *returnVal;
	int length;

	returnVal = (char *)malloc(MAX_PATH*sizeof(char));

	hwndWinamp = FindWindowA("Winamp v1.x",NULL);
	if(hwndWinamp == NULL)
	{
		printf("Winamp not running.\n");
	}

	else
	{

	ReadWinampToLocal((char *)SendMessage(hwndWinamp, WM_WA_IPC, GetPlayingTrack(), IPC_GETPLAYLISTFILE), returnVal, MAX_PATH);

	printf("\nCurrently Playing song: %s\n\n", returnVal);
	printf("Artist: %s\n", GetMetaInfo("Artist", returnVal));
	printf("Title: %s\n", GetMetaInfo("Title", returnVal));
	printf("Album: %s\n", GetMetaInfo("Album", returnVal));
	printf("Year: %s\n", GetMetaInfo("Year", returnVal));
	printf("Bitrate: %s kbps\n", GetMetaInfo("Bitrate", returnVal));

	// in milliseconds
	length = atoi(GetMetaInfo("Length", returnVal));
	printf("Length: %d:%02d\n", length/(1000*60), (length/1000)%60);

	free(returnVal);
	}
}


die header Datei:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class WinampHelper */

#ifndef _Included_WinampHelper
#define _Included_WinampHelper
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:	 WinampHelper
 * Method:	printTrackInfo
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_WinampHelper_printTrackInfo
  (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif



wenn ich das dann kompiliere und ausführen will, bekomm ich immer fogende Exception:

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: mybrary.WinampHelper.printTrackInfo()V
at mybrary.WinampHelper.printTrackInfo(Native Method)
at mybrary.WinampHelper.<init>(WinampHelper.java:13)
at mybrary.main$2.actionPerformed(main.java:143)
at javax.swing.AbstractButton.fireActionPerformed(Unk
nown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed
(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)


Hoffe mal mir kann jemand dabei helfen.

Danke schon mal im Voraus.

Edit: Hab den Fehler gefunden. Hatte den packagename nicht im Methodennamen drin stehen. Funktioniert jetz fürs erste :-)

Gruß,
markus

Dieser Beitrag wurde von m4rkus bearbeitet: 24. Mai 2008 - 09:12

2*3=4
0

Anzeige



Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0