Avatar billede namrednow Nybegynder
03. juli 2007 - 20:35 Der er 8 kommentarer

Streaming af Mediefiler via ADO fra Access Blobfelt?

Jeg har brug for lidt hjælp til streaming af mediefiler (wav, mp3, avi, wmv) fra en Access db med blob/ole felt.

Kan nogen hjælpe med det?
Avatar billede hrc Mester
04. juli 2007 - 23:40 #1
Kan dette her bruges?

procedure TForm1.ButtonClick(Sender: TObject);
var
  Query : TADOQuery;
  Stream : TMemoryStream;
begin
  Query := TADOQuery.Create(nil);
  try
    Query.Connection := ADOConnection; // Forbind til access-databasen
    Query.SQL.Text := 'select Id, data from media';
    Query.Open;
    while not Query.Eof do
    begin
      Stream := (Query.CreateBlobStream(Query.FieldByName('data'),bmRead) as TMemoryStream);
      try
        Stream.Seek(0,soBeginning);
        // Gør med data hvad du vil her
      finally
        Stream.Free;
      end;
      Query.Next;
    end;
  finally
    Query.Free;
  end;
end;
Avatar billede namrednow Nybegynder
17. juli 2007 - 19:46 #2
Ja, det fungerer fint - det stort set samme metode jeg benytter til at hente billeder fra blobs.

Der hvor jeg går i stå, er måden jeg får mediaplayer til at afspille streamen...
Avatar billede hrc Mester
22. juli 2007 - 23:22 #3
Hvorfor skrev du ikke det i dit spørgsmål? Kan godt blive lidt træt af sådanne "Mit program virker ikke, hjælp!"-indlæg. Beskriv dog hvor langt du er kommet og hvor det går galt.

Der kom i alt fald noget mere kød på opgaven.

Hent Media Player SDK'en for version 11 (fylder > 1Gb)

  http://msdn2.microsoft.com/en-us/windowsmedia/bb190327.aspx

Her finder du også dokumentationen.

Jeg nævner 11'eren da det er den MP'er jeg har kørende. Med den håber jeg at kunne registrere MP'eren i Delphi som en komponent - der er noget der tyder på det, nemlig denne blog:

  http://blogs.msdn.com/brad_mccabe/archive/2005/03/10/392385.aspx

... men det er 10'eren der snakkes om. Det kan være at 11'eren er "dot nettet" så meget at man ikke kan. Det finder jeg ud af om 1 Gb's tid.

Det er da en start. Håber at kunne vende tilbage snarrest - men det det bestemmer mine to små "&"!¤#& tvillinger egenrådigt.
Avatar billede hrc Mester
22. juli 2007 - 23:39 #4
Det kan man: I min D2006'er gik jeg ind i menupunktet "Components/Import component", valgte activeX og fandt MP'eren nede i bunden af listen. Derved fik jeg lavet mig en komponentindpakning. Næste trin er at få den lagt ind i min pallette; det glemmer jeg altid hvordan.
Avatar billede namrednow Nybegynder
23. juli 2007 - 07:25 #5
Det lyder rigtigt spændende...

Jeg synes nu også at jeg havde skrevet i beskrivelsen, at det var streaming af mediefiler, der var problemet - men det var altså fra MP-komponenten jeg mente ;-)

Jeg er gået i gang med at hente MP SDK'en ned, så ser jeg lige hvor langt jeg kommer med den. Jeg vender tilbage når jeg enten jubler eller er gået i stå... he he :-)
Avatar billede namrednow Nybegynder
24. juli 2007 - 09:17 #6
OK - jeg er nu ca. nået til det du beskrev.

Jeg har fået en WMPLib_TLB.pas fil, men mangler at have den liggende i paletten, så jeg kan tilføje den i mit program...

Så nu mangler jeg kun at få den proppet i programmet og få den til at afspille video/lydstreamen fra min DB-blob :-)
Avatar billede namrednow Nybegynder
07. august 2007 - 20:37 #7
Er der nogen der kan hjælpe mig videre?

Jeg kan stadig ikke kunnet få medieplayeren til at afspille en stream, og jeg har ikke fundet ud af at bruge hrcs activex komponent/lægge den i palletten...

Jeg vil evt. gerne kaste lidt flere point ind i sagens gode tjeneste!
Avatar billede namrednow Nybegynder
30. august 2007 - 18:05 #8
Er der slet ingen der kan hjælpe med at få afspillet en mediestream i en delphi applikation?
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester