webForumDet fria alternativet

Windows Media Player ActiveX

5 svar · 399 visningar · startad av Rickard

RickardMedlem sedan maj 2001287 inlägg
#1

Halloj, vet inte riktigt vad jag skall söka efter när det gäller mitt problem, så jag fågar istället.

Jag är helt ny när det gäller Delphi, så jag har nog lite svårt att beskriva och vet inte om/vad för kod jag skall posta för att ni lättare skall kunna hjälpa.

Men, jag har satt upp en form med en activeX komponent (WindowsMediaPlayer), som jag vill få att spela upp en shoutcast stream.
Det är inga problem, jag har fått den att ta in en stream, problemet nu är att jag vill kunna byta mellan servrar.

Har satt upp en dropdown menu där jag vill kunna välja vilka servrar jag vill streama ifrån.
Allt skall vara fördefenierat, skall inte kunna ändra vilka streamar som skall tas in mer än i källkoden.

Frågan är nu, hur kopplar jag menyalternativen till WMP så att när jag klickar på menyalternativen så skickas det vidare till activex komponenten?
Ett exempel på hur jag menar utifall ni inte förstår.

 __________           _________
|   WMP    |   <--   | server1 |
 ----------          | server2 |
                     | server3 |
                     +---------+

Hoppas ni hänger med på hur jag menar.
Eftersom jag är helt nybörjare, så vore det bra om ni kunde tala om vart jag skall skriva eventuell kod då jag inte har en aning om vart jag skall lägga saker.

Tack på förhand.

RickardMedlem sedan maj 2001287 inlägg
#2

Är det verkligen ingen som har en aning om hur man kan lösa detta?

HardrockerMedlem sedan nov. 2003310 inlägg
#3

Det är väl bara att lägga koden i OnChange eventet på DropDownen.

Har inte kollat på Windows Media Player Active X en men det borde se ut nåt sånt här:

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  Mediaplayer.? := TCombobox(Sender).Items[TCombobox.(Sender).ItemIndex] 
end;

Hoppas detta pekar dig i rätt riktning

/Ante

RickardMedlem sedan maj 2001287 inlägg
#4

På den får jag felet

Identifier expected but '(' found
'END' expected but ')' found

Jag kan endast gissa mig till att det skall vara WindowsMediaPlayer1.URL := .....
men jag är inte säker, det får jag experimentera fram.
Men först måste jag lyckas lista ut, vad är det för identifier den förväntar sig?

Dessutom kan jag ju tillägga att jag vill inte visa servernamnen i comboboxen.
Det skall enbart stå server1, server2 etc medans den skickar "http://server.tld:port" till WMP.URL.....

Kanske är då inte comboboxen rätt alternativ, men det kanske någon kan svara på vad som är bäst.. =)

RickardMedlem sedan maj 2001287 inlägg
#5

Ett alternativ till denna combobox skulle vara att man kan få WMP att använda sig av en befintlig playlist (.ASX eller .PLS)

Problemet vi har då är att användaren inte har någon somhelst möjlighet att bestämma själv vilken server han/hon vill lyssna på, och kan inte byta om servern laggar eller dör.
Och eftersom jag inte har möjlighet att döda servrarna så kan jag inte heller kontrollera om den fortsätter neråt i listan om en server dör.

Finns det något sätt att visa en playlist?

ALternativet till combobox och playlist skulle kanske vara en meny där man kan välja, frågan är då bara hur detta skall kopplas.
Med tanke på felen jag fick på comboboxen när jag testade, så lär jag få samma fel om jag bara ändrar koden för att passa till en meny.

HardrockerMedlem sedan nov. 2003310 inlägg
#6

Det blev en punkt för mycket i exempelkoden.

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  Mediaplayer.? := TCombobox(Sender).Items[TCombobox(Sender).ItemIndex] 
end;

Om du inte vill visa adressen i comboboxen så får du väl spara undan adressen någon annanstans. T.ex. i tag attributet, i array eller nåt liknande.

/Mvh Ante

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)