Entwickler-Ecke

Multimedia / Grafik - [Bass.dll]Aus Radiostream Current Song und Titel auslesen


lblbw - Do 20.03.08 17:28
Titel: [Bass.dll]Aus Radiostream Current Song und Titel auslesen
Hallo ich hab mal wieder ein kleines Problem,

wie lese ich mit Hilfe der Bass.dll aus einem Shoutcast Server den "Current Song" und den "Stream Title" aus?


Gausi - Do 20.03.08 17:33

Schau dir mal die netradio-Demo der bass.dll an, da wird das gemacht. ;-)


lblbw - Do 20.03.08 17:40

Hab ich schon, aber er zeigt dann immer nur an ICY 200 OK und nichts weiter.

Delphi-Quelltext
1:
2:
3:
4:
  icy := BASS_ChannelGetTags(chan, BASS_TAG_ICY);
  if (icy = nilthen
    icy := BASS_ChannelGetTags(chan, BASS_TAG_HTTP); // no ICY tags, try HTTP
  Label1.Caption:=icy;


Gausi - Do 20.03.08 17:45

Quelltext weiter lesen, die wichtige Stelle ist sogar passend kommentiert:


Delphi-Quelltext
1:
2:
3:
// get the stream title and set sync for subsequent titles
DoMeta(BASS_ChannelGetTags(chan, BASS_TAG_META));
BASS_ChannelSetSync(chan, BASS_SYNC_META, 0, @MetaSync, 0);


lblbw - Do 20.03.08 17:59

Gut, hab ich überlesen. Gibts keinen einfachereren Weg?


Gausi - Do 20.03.08 18:15

Nicht dass ich wüsste. Aber das ist doch auch schon einfach. Guck dir mal an, was da passiert. Da kommen kiloweise Bytes ausm Kabel oder aus der Luft angeschwirrt, die die bass.dll in Musik umwandelt. Ab und zu bilden die Bytes keine Musik, sondern Texte, und die bass.dll ist so nett und merkt das. Und wenn man der vorher sagt "Hörmal, wenn da so anderes Zeug kommt, dann sach mir Bescheid" (BASS_ChannelSetSync(chan, BASS_SYNC_META, 0, @MetaSync, 0);), dann muss nur auf das "Bescheid" hören (procedure MetaSync(handle: HSYNC; channel, data, user: DWORD); stdcall;), um dann dieses andere Zeugs auseinanderzunehmen und die gewünschten Infos auslesen (procedure DoMeta(meta: PChar);)...


lblbw - Do 20.03.08 18:20

jaja schon klar. Danke dir Gausi.