Hvilken compiler bruger du ? Når du siger indsat, hvad mener du så ? Under C++ Builder skal man importere ActiveX controllen først og dernæst "droppe" den dannede ActiveX control på sin form. Herefter kan du se alle properties og events direkte i Object Inspectoren.
På en alm. Media-player control er der normalt en FileName property, som du udfylder med navnet på videoklippet, og dernæst "fyrer" du blot MediaPlayer1->Play(); for at få afspillet video'en:
void __fastcall Form1::Button1Click(TObject *Sender) { String MediaFile = "C:\\windows\Media\\start.wav"; if (Sender == Button1 && FileExists(MediaFile)) { MediaPlayer1->FileName = MediaFile; try { MediaPlayer1->Play(); } catch (Exception &e) { Application->MessageBox(("Fejl " + e.Message.TrimRight() + " under afspilning af " + MediaFile + ". Ret fejlen og prøv igen.").c_str(), "Fejl under afspilning af mediefil", ICON_ERROR | MB_OK); } }
og forresten jeg vil egentlig også gerne vide hvad objekt der er bedst til at afspille videoklip: "ActiveMovieControl" eller "Windows Media Player" ???
Okay, gå istedet op i Project->Add to Project->Components and Controls. Vælg registered ActiveX Controls, klik på "ActiveMovieControl Object" og vælg "Insert". Klik "OK" når du bliver spurgt om du vil indsætte komponenten og "OK" igen for at acceptere klassenavnet. Du får nu indsat en klasse (fx "CActiveMovie3"), som du kan bruge til at håndtere kontrollen.
Du vil gerne afspille en fil, ikke? Altså skal du gøre hvad er helt naturligt, tilføje en handler for en button eller hvad du nu vil have brugeren skal gøre for at afspille filmen! I din handler indsætter du de to linier kode...
hmm ? så det er for at åbne ikke spille filmen?! Den skal jo bare loade af sig selv...så koden skal bare i sammen med koden der åbner dialog-vinduet? eller hva?
:D !!! hmm jeg ved jo ikke hvad der eventuelt kunne være galt...der kommer intet vindue ... men der kommer der ingen fejl i programmet så der kan da ikke være skreven noget forkert! højest glemt noget eller noget :)
Kunne vi ikke respektere hinandens valg af "religion" uden at skulle komme med kommentarer der ikke tjener andet end irriatation og blot udmunder i endeløse, forudindtagede diskutioner om hvad der er bedst?
Jeg har intet imod konstruktiv kritik, men nedladende kommentarer hører ikke i den gruppe!
Det er jeg - men jeg har også lov til at mene at C++ Builder's løsning på problemet er noget mere ligetil, f.eks. har jeg ikke behov for at kende Windows interne konstanter WM_INITDIALOG, IDC_MEDIAPLAYER og lignende for at lave en simpel (trods alt) afspilling af lyd eller videoklip.
Nej selvfølgelig, men det er også det jeg mener med at en kommentar som den du skrev er nyttesløs, du har nemlig misforstået det.
Når du indsætter en kontrol på en dialog giver du den et ID som du kan identificere den ved. I mit eksempel har jeg valgt at kalde den IDC_MEDIAPLAYER. Man kunne også bare lave en membervariabel for kontrollen, med et museklik og et par tastetryk. Du kunne så glemme alt om IDC_MEDIAPLAYER...
WM_INITDIALOG er den message der bliver sendt umiddelbart før dialogen vises. At han skal bruge den skyldes kun, at han vil have at noget skal ske uden brugerinput, når dialogen vises. At kende den er selvfølgelig en nødvendighed i det her tilfælde, men det vil jo ikke være anderledes i Builderen, vel? (Du skal stadig vide hvilken funktion der kaldes ved visning af en dialog). Kodestuppen for funktionen (OnInitDialog), genereres ligeledes med et par enkelte klik med musen.
Altså, det er faktisk ufatteligt simpelt og ligetil. Jeg er sikker på det er lige så let i Builderen og også at der er fordele og ulemper i begge miljøer. Det er meget svært at foretage en objektiv vurdering, når man kender det ene program bedre end det andet, derfor afholder jeg mig også derfra.
haha det er kun når jeg bruger .mpeg-filer det ik dur...jeg prøvede lige med en .wmv-fil og den virkede fint :) (underligt at .mpeg-filerne ik dur?)...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.