Gå til innhold

WindowsMediaPlayer ActiveX, HJELP!


Anbefalte innlegg

Er det noen her som veit hvordan man får en WMP ActiveX komponent til å resize seg i samsvar med formen den ligger på? skal lage et program som kan streame video fra mms-adresser, har prøvd DSPack, men det var litt vrient å bruke.

Jeg klarer bare ikke å resize WMP ActiveX komponenten, setter

WMPctrl.Align := alClient

men det funker ikke, bildet i den komponenten endrer ikke størrelse, det ser egentlig ut som den ikke vil oppdatere den. Jeg aner ikke hva jeg skal gjøre, noen forslag?

 

Takker på forhånd, har sliti med dette en god stund nå.

Lenke til kommentar
Videoannonse
Annonse
MSDN - WMP 10 referanse

Jeg tror du må se på Player.StretchToFit property

5692401[/snapback]

 

Jeg fikk ikke det til å virke :( noen andre som har noen flotte i ideer. For jeg trenger virkelig en mulighet for å forandre størrelsen på den formen som WMP ActiveX kontrollern ligger på. Også er det en ting jeg ikke helt skjønner, WMP kontrollern endra fint på seg når jeg dro ut formen i Delphi, men det funka ikke når jeg kjører programmet :dontgetit:

Noen som har andre forslag?

Lenke til kommentar

type TLocOleCtrl=Class(TOleControl);

procedure TForm1.FormResize(Sender: TObject);
begin
 TLocOleCtrl(WindowsMediaPlayer1).OnPosRectChange(Rect(0,0,ClientWidth, ClientHeight));
end;

Forklaring:

Ved Resize må vi kalle SetObjectRects for å sette objektet i riktig størrelse. Microsoft sier at dette gjøres ved at vi informerer "Site" at vi ønsker å sette opp objektet, som ligger i den, til nye ytre mål, derfor kaller vi OnPosRectChange.

 

MS side for dette

 

OnPosRectChange er Protected metode av TOleControl, derfor må vi hacke i den, derfor har jeg type TLocOleCtrl=Class(TOleControl) i koden.

Lenke til kommentar

Tusen takk, DidzisK :D akkurat det jeg trengte :thumbup:

Takker og bukker for hjelpen :w00t:

 

Merker at jeg kanskje burde ta et kurs innen Delphi når jeg blir ferdig med videregående :p har holdt på i rundt 4 år nå, men er skikkelig amatør likevel, har ikke så mye tid til å holde på med delphi ved siden av skolearbeidet merker jeg.

Takk igjen, kan endelig bli ferdig med det programmet jeg har holdt på med lenge nå :D har holdt på med det ett år nå snart, var nesten ferdig. Bare dette som manglet, så Tusen takk for hjelpen ;)

 

Selv om jeg nå innså at det egentlig ikke var så mye som skulle til.

Lenke til kommentar

Takk for fine ord :)

 

Denne saken sier ingenting om Delphi kunnskapen din. Jeg har brukt Delphi i over 9 år nå (siden januar 1997), men likevel brukte jeg over tre timer på å finne ut av dette - måtte lese både MS dokumentasjon og grupper på nettet. Heldigvis var det én (bare en!) som hadde løst lignende problem i en Delphi gruppe, det var det som satte meg på riktig spor. Her er linken, håper den virker.

 

Jeg tror at her snakker vi egentlig om bug (eller mangel) i Delphi implementeringen av TOleControl. TOleControl er komponent som både implementerer det MS kaller "Site" og "eksponerer" (exposes) egenskapene til ActiveX komponenten som får lov å ligge i den. Så etter min oppfatning burde den kalle OnPosRectChange i sin egen WmResize prosedyre (eller i SetBounds som den arver fra TControl) og alt kunne skje automatisk. Dessverre har TOleControl ingen WmResize prosedyre og heller ikke overstyrer SetBounds.

Lenke til kommentar

Har ett spørsmål til angående WindowsMediaPlayer ActiveX

hvorfor får jeg feilmelding når jeg prøver å kalle opp en MDIChild (med WMP ActiveX kontrollern på).

HAr forskjellig kode i forskjellig Unit.

 

Denne koden står i unit1


procedure TForm1.FormCreate(sender: TObject);
begin
ex.closeCreateMDIChild(Tfrm_WMP, frm_WMP);
end;

...

procedure TForm1.btn1click(sender:Tobject);
begin
if mode='wmp' then
 frm_wmp.play(filename);
end;

mode og filename er globale operatorer.

 

dette står i unit2 (med WMP ActiveX)

procedure Tfrm_wmp.Play(Filnavn:string);
begin
WMP.URL := filnavn; //<- pleier å stoppe her...
WMP.controls.play;
end;

 

dette står i unit3

Procedure TEx.CloseCreateMDIChild(NewForm: TComponentClass; NewRef: Tform);
begin
if Form1.MDIChildCount > 0 then
 Form1.ActiveMDIChild.Destroy;

Application.CreateForm(NewForm, NewRef);
NewRef.show;
end;

 

Vel det som er problemet er at det dukker opp en feilmelding når det kommer til WMP.URL i unit2, jeg skjønner ikke hvorfor, noen som har forslag å komme med?

Lenke til kommentar

Det er ett par ting som er mistenkelige eller litt ufine her.

 

1. Destroy er destructor, normalt kaller man Free og ikke Destroy. Free sørger da for å frigjøre objektet hvis alt er klart til frigjøring og kaller bl. a. Destroy.

2. Btn1Click garanterer strengt tatt ikke at variabelen frm_wmp peker til noe gyldig. Du kan få Access Violation hvis frm_wmp er nil eller peker til noe som er blitt frigjort.

3. Som regel, starter WMP å spille med en gang du angir URL. Kanskje er det noe feil med den?

4. Må du lage en ny mediaspiller? Har du sett på zoomplayer? Jeg er nesten sikker på at han har laget det i Delphi (men det er ikke relevant). Jeg kom på det navnet fordi den også spiller MOV ved hjelp av ActiveX kontroll som tegnes i hovedformen.

Lenke til kommentar

Oki, greit.

Egentlig så lurer jeg på om jeg skal prøve meg på DSPack igjen, for jeg veit at den kan ta RealMedia, QuckTime og WindowsMedia filer. Men jeg har ett lite problem når det gjelder DSPack, jeg synes det er så utrolig vanskelig å streame fra servere på det. Skulle likt å streame de forskjellige medietypene fra en webserver. Men jeg klarer bare å gjøre det med ActiveX-kontrollen til WindowsMediaPlayer, RealPlayer og QuickTime, altså klarer jeg det ikke med DSPack.

Har noen et forslag til hvordan jeg kan streame fra mms, rtsp og pnm-servere med DSPack?

Lenke til kommentar
  • 11 måneder senere...

Hei, å streame mms er enkelt og greit med dspack.

Eksempel:

 

if not FilterGraph.Active then FilterGraph.Active := true;

FilterGraph.ClearGraph;

FilterGraph.RenderFile('mms://s-lon-05.global-mix.net/e-music');

 

 

Å streame rtsp er derimot ikke like enkelt. Jobber selv med saken, men så langt ingen løsning.

Lenke til kommentar
  • 4 år senere...

Hello there,

I am an American. I really want to Put together an Animation Studio in India. Presently i'm exploring for computer animators. I preferred India simply because it is less costly as compared with U.S. I intend to find out the measures for setting up a business in India, especially an animation studio.

 

Could you people please help me out?

Lenke til kommentar

Hello there,

I am an American. I really want to Put together an Animation Studio in India. Presently i'm exploring for computer animators. I preferred India simply because it is less costly as compared with U.S. I intend to find out the measures for setting up a business in India, especially an animation studio.

 

Could you people please help me out?

Why do you assume a norwegian forum for software developers can help?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...