News

Archiv ]

Ich hör grad...

Ich bin in einem Blogg gestern abend über eine Funktion gestolpert, die ich auch gerne auf meiner privaten Homepage haben wollte: Die Seite zeigte an, welches Lied der Blogg-Besitzer zuletzt in Winamp abgespielt hat.

Mir war sofort klar, dass das System aus einem Winamp-Plugin und einem Skript bestehen müsste, und dass man soetwas sicher auch einfach in Postnuke integrieren könnte. Also machte ich mich auf die Suche.


1. Station: www.winamp.com - dort habe ich das Plugin Info Sender gefunden. Dabei handelt es sich um eine .dll, die man sich ins Plugin-Verzeichnis von Winamp (v5.03) kopiert. Einrichten kann man das Plugin unter Options/Preferences/Plugins/General - es heisst dort "Luke's Info Sender (gen_sender.dll)". Man muss es einschalten und den Pfad zum Empfängerskript angeben. Da ich das jetzt noch nicht hatte, musste ich mir erstmal eines suchen.

2. Auf der Homepage des Plugin-Autors gibt es den Hinweis auf ein mögliches Skript. Das legt man sich in ein Unterverzeichnis auf dem Server (ich habe es winamp.php genannt) und legt noch eine zusätzliche, leere Datei an, die genau so heisst, wie es im SourceCode angegeben ist:

Code

$filename = 'winamp.txt';
Diese muss 777-Rechte haben, damit das Skript hier immer den aktuellen Titel eintragen kann.

3. Nun, da man weiss, wo das Skript liegt, kann man das Plugin entsprechend konfigurieren: http://www.meineDomain.de/Unterverzeichnis/winamp.php?song=

4. Wenn man es nun enabled, sollte Winamp beim Abspielen eines Liedes die MP3-Tags für Künstler und Titel als einfachen String an das Skript schicken. Dieses schreibt den Inhalt in die Datei.

5. Wenn man das Skript nun ohne Parameter aufruft (http://www.meineDomain.de/Unterverzeichnis/winamp.php) bekommt man den Inhalt der Datei angezeigt.

6. Wenn man das Ganz nun noch in einem Block in Postnuke haben möchte, legt man sich einfach einen PHP-Block an und schreibt dort hinein:

Code

include("http://www.meineDomain.de/Unterverzeichnis/winamp.php");


Ich habe mir das Skript noch ein wenig angepasst, so dass zum Beispiel noch das Datum und die Uhrzeit der letzten Dateiänderung angezeigt wird. Leider scheint aber clearstatcache() bei mir irgendwie nicht zu wirken. Deswegen bleibt die Datumsanzeige zur Zeit einfach auf heute Nacht stehen. Vielleicht kann mir da ja einer von Euch PHP-Füchsen nen Tipp geben.

Ach ja - zu sehen gibt's das Werk hier. Jetzt könnt Ihr immer sehen, welche CD sich gerade in meinem Laufwerk dreht. (Dank CDDB) icon_wink

 

Kommentare

kommentiert von:
jn's Avatar
jn
07 Jul 2004 - 09:17 Uhr
<neid>Ist das Dein CD-Regal?<neid></neid></neid>

kommentiert von:
Kiowa's Avatar
Kiowa
07 Jul 2004 - 09:28 Uhr
Nett, pack das doch mal alles zusammen zu loaden icon_smile

kommentiert von:
na-oma's Avatar
na-oma
07 Jul 2004 - 17:28 Uhr
nette funktion, kannte ich noch nicht

clearstatcache hat nur eine wirkung, wenn du eine datei im selben script veränderst und nach der veränderung die aktuellen daten bekommen willst.
da du aber winamp.php immer neu aufrufst sollte clearstatcache nix nützen.

fwrite sollte eigentlich die filetime() ändern, aber du kannst ja nach if!(fwrite...){...} noch

Code

touch($filename);

machen...wäre zwar doppelt, aber was solls.
kannst auch mal checken was für datum und zeit dein FTP proggi für winamp.txt anzeigt.

kommentiert von:
kaffeeringe.de's Avatar
kaffeeringe.de
08 Jul 2004 - 08:35 Uhr
@jn. Ja icon_biggrin Ich sammel aber auch schon seit 15 Jahren icon_wink

@ na-oma: Da lustige ist: stat() gibt mit tatsächlich immer eine andere mtime. Sobald ich das aber durch date() schick, verändert sich das nur noch beim ersten Aufruf. Das hat auch nix mit dem Block zu tun. Auch wenn ich das Skript alleine aufruf, passiert das. Ich kann auch mtime und das durch date geschickte mtime gleichzeitig ausgeben lassen - während sich mtime verändert bleibt date gleich... Jetzt übergeb ich das schon gar nicht nicht mehr an eine Variable, sonder lass das direkt ausgeben - trotzdem... Ich hab keine Ahnung, was da läuft... icon_frown

kommentiert von:
na-oma's Avatar
na-oma
08 Jul 2004 - 16:38 Uhr
gib ma link zu dem code oder poste relevante abschnite, wobei link sicher besser ist, falls der fehler woanders liegt, dann schau ich mir das mal an, kann ja wohl nich wahr sein icon_eek

und cds sind das wirklich viele...ich hab grad mal 3 oder so, aber ich hör auch meist radio o.ä.

kommentiert von:
marcok's Avatar
marcok
08 Jul 2004 - 23:32 Uhr
Hallo,

das hättest du auch einfacher haben können. Dazu gibt es das DoSomething-Plugin eine genauer Beschreibung dazu befindet sich bei Suzan.

Übrigens: Nette Grafik auf Deiner Seite - habe ich schonmal irgendwo gesehen icon_smile

kommentiert von:
kaffeeringe.de's Avatar
kaffeeringe.de
09 Jul 2004 - 09:58 Uhr
Gott bin ich blöd ... Ich hatte das Datumformat in date() falsch angegeben!! icon_rolleyes

löppt jetzt

kommentiert von:
Tutti's Avatar
Tutti
10 Jul 2004 - 21:52 Uhr
Hi AmO,
ich fand die Idee mit dem Plugin ganz witzig.
Da ich gerade 'n paar versuche mit gdlib starte, dachte ich mir ich mal mal ein PNG-Output draus.
http://www.pc-mind.de/cddb/winamp.php icon_biggrin
Hier wären die Infos dazu.

kommentiert von:
kaffeeringe.de's Avatar
kaffeeringe.de
11 Jul 2004 - 11:13 Uhr
@Tutti: Sehr geil. Das schau ich mir mal an.

kommentiert von:
Tutti's Avatar
Tutti
11 Jul 2004 - 11:23 Uhr
Danke icon_wink
Hab deine Idee mit dem Datum auch mal übernommen.
Update liegt hier.
Die Texte sind jetzt alle editierbar.

kommentiert von:
kaffeeringe.de's Avatar
kaffeeringe.de
11 Jul 2004 - 11:44 Uhr
Du hast noch Probleme mit den Umlauten: Udo Jürgens - Tom und Jerry icon_biggrin

kommentiert von:
Tutti's Avatar
Tutti
11 Jul 2004 - 12:06 Uhr
Jep Udo war die testperson icon_lol

habs mit

Code

// replace german special character
$songname = ereg_replace("&Auml;","Ä",$songname);
$songname = ereg_replace("&auml;","ä",$songname);
$songname = ereg_replace("&Ouml;","Ö",$songname);
$songname = ereg_replace("&ouml;","ö",$songname);
$songname = ereg_replace("&Uuml;","Ü",$songname);
$songname = ereg_replace("&uuml;","ü",$songname);
$songname = ereg_replace("&szlig;","ß",$songname);

verbessert icon_biggrin

kommentiert von:
na-oma's Avatar
na-oma
11 Jul 2004 - 22:39 Uhr

Code

// replace german special character $songname = str_replace(array('Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü', 'ß'), array('&Auml;', '&auml;', '&Ouml;', '&ouml;', '&Uuml;', '&uuml;', '&szlig;') ,$songname);

ist deutlich kürzer, schneller und effizienter, da es kein ereg, sondern str_replace nutzt.
müsste so in etwa gehen, ungetestet.

das mit dem image ist ne coole idee! ich seh schon alle mit solchen foren-signaturen rumrennen icon_rolleyes

kommentiert von:
Guite's Avatar
Guite
12 Jul 2004 - 05:42 Uhr
Die Idee an sich gibt es allerdings schon etwas länger:

http://www.hiphoplager.de/portal/index.php?name=LagerForum&file=weckasig

kommentiert von:
kaffeeringe.de's Avatar
kaffeeringe.de
12 Jul 2004 - 09:24 Uhr
Ja, aber im Gegensatz zu Dir, können wir Ideen nicht für uns behalten icon_wink

kommentiert von:
Guite's Avatar
Guite
12 Jul 2004 - 09:34 Uhr
Ich bin davon ausgegangen, daß die Erstellung dynamischer Bilder mit PHP hinlänglich bekannt sei icon_biggrin

kommentiert von:
kaffeeringe.de's Avatar
kaffeeringe.de
12 Jul 2004 - 10:01 Uhr
Naja, der Grund für meinen Artikel war ja auch mehr das Winamp-Plugin, das die Sache erst möglich macht.

kommentiert von:
Guite's Avatar
Guite
12 Jul 2004 - 11:01 Uhr
Ich frage mich, ob ich dieses Plugin nicht dazu nutzen könnte um den Usern direkt den Text zu dem Lied, welches sie gerade hören, aus der Datenbank herauszusuchen. Leider muß dann jeder User dieses Plugin installieren...

kommentiert von:
Tutti's Avatar
Tutti
15 Jul 2004 - 20:37 Uhr
@na-oma
danke für den Tip icon_wink , Arrays muss ich mir unbedingt mal einprägen.

Nur angemeldete Benutzer dürfen Kommentare verfassen. Zur Registrierung/Anmeldung