Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Вниз

Где компонент TMediaPlayer хранит данные?   Найти похожие ветки 

 
NikNet ©   (2005-10-07 18:33) [0]

Которые он воспройзводит? Хочу  сделать FFT?


 
vrem   (2005-10-07 18:36) [1]

ах FFT, автор попробуй ещё раз вопрос задать :)


 
Дмитрий Белькевич   (2005-10-08 04:55) [2]

Афтар выпей йаду ;)


 
PAVIA ©   (2005-10-08 19:57) [3]

Данные он хранит в памяти. А если по существу используй
vfw(vide for windows)

Тут небольшая загатовка.
unit Unit1;

interface

uses
 vfw....;

type
 TForm1 = class(TForm)
   Panel1: TPanel;
   Button1: TButton;
   OpenDialog1: TOpenDialog;
   Timer1: TTimer;
   procedure load1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure Timer1Timer(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

 procedure Scan(dsfmt:PBITMAPINFOHEADER;dsdata:pointer);

var
 Form1: TForm1;
avistream:Pavistream;
fmtlen:integer;
HICV:hic;
srcfmt,dstfmt:PBITMAPINFOHEADER;
streaminfo:Tavistreaminfo;
dstdata,srcdata:pointer;
Frame:integer;

l1,l2:integer;

paus:boolean;

a:array of single;
implementation

{$R *.DFM}

procedure TForm1.load1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
if avistream<>nil then
begin
AVIStreamRelease(avistream);
avistream:=nil;
end;
AVIStreamOpenFromFile( avistream,Pchar(OpenDialog1.Filename),
 streamtypeVIDEO, 0, OF_READ or OF_SHARE_EXCLUSIVE, 0 );

AVIStreamInfo( avistream, streaminfo, sizeof(streaminfo) );

AVIStreamFormatSize(avistream, 1, @fmtlen);
getmem(srcfmt,fmtlen);
AVIStreamReadFormat( avistream, 1, srcfmt, @fmtlen );
if HICV<>0 then
begin
ICDecompressEnd(HICV);
ICclose(HICV);Hicv:=0;
end;
HICV:=ICDecompressOpen( ICTYPE_VIDEO, streaminfo.fccHandler,srcfmt,nil );
fmtlen:=ICDecompressGetFormatSize(HICV, srcfmt);
getmem(dstfmt,fmtlen);
ICDecompressGetFormat(HICV, srcfmt, dstfmt);

getmem(dstdata,dstfmt.biSizeImage);
ICDecompressBegin(HICV, srcfmt, dstfmt);
Frame:=streaminfo.dwStart;
paus:=false;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
AVIFileInit();
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
if HICV<>0 then
begin
ICclose(HICV);Hicv:=0;
end;
if avistream<>nil then
begin
AVIStreamRelease( avistream ); avistream:=nil;
end;
AVIFileExit();
end;

procedure Scan(dsfmt:PBITMAPINFOHEADER;dsdata:pointer);
var
i,j:integer;
yarkost:single;
R,G,B:byte;
begin
i:=0;
while i<(dsfmt.biWidth*dsfmt.biHeight)*3 do
begin

// Byte(PChar(dsdata)[i+0]):=0;
Byte(PChar(dsdata)[i+1]):=0;
Byte(PChar(dsdata)[i+2]):=0;
// yarkost:=0.63*R+0.4*G+0.3*B;

 inc(i,3);
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
dc:Hdc;
prect:TRect;
DDib:HDRAWDIB;
begin
if (hicv<>0) then
       begin
       if srcdata<>nil then begin FreeMem(srcdata);
       srcdata:=nil; end;
       avistreamread(avistream,Frame,1,nil,0,@l1,@l2);
       getmem(srcdata,streaminfo.dwSuggestedBufferSize);
       avistreamread(avistream,Frame,1,srcdata,streaminfo.dwSuggestedBufferSize,@l1,@l2);
       ICDecompress( HICV, 0, srcfmt, srcdata, dstfmt, dstdata);

       Scan(dstfmt,dstdata);

       dc:=getdc(Panel1.Handle);
       prect:=Panel1.ClientRect;
       DDib:=DrawDibOpen;
       DrawDibDraw(DDib,dc,pRect.left,pRect.top,pRect.right,pRect.bottom,dstfmt,dstdata,0,0,-1,-1,0);
       DrawDibClose(DDib);
       ReleaseDC(Panel1.Handle,dc);

       if (not paus) then inc(Frame);
       if  Frame=streaminfo.dwStart+streaminfo.dwLength then
       begin Frame:=streaminfo.dwStart;
       paus:=true;
       end;
       end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
load1Click(Self);
end;

end.



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.012 c
1-1139215632
Stanislav
2006-02-06 11:47
2006.03.12
Memo сподсветкой синтаксиса


1-1134166900
Destroyer
2005-12-10 01:21
2006.03.12
Удаление без восстановления


2-1140570136
Bogdan1024
2006-02-22 04:02
2006.03.12
Скомандовать виндовс открыть файл.


2-1140342145
keyser
2006-02-19 12:42
2006.03.12
Сервисы в windows 98 и Me


3-1137503688
Бульбаш
2006-01-17 16:14
2006.03.12
Ограничение макс. значения поля.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский