小弟我要寫一個把AVI中每個frame都讀出來...
然後用image元建播放所讀到的資料...
不過播的時候畫面閃爍的很嚴重... = ="
不之各位大大有沒有什麼解決方式??
p.s 第一次寫 寫的很差請多見諒 = ="
//--------------------------------------------------------------------------- #include
#pragma hdrstop #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute())
{
MediaPlayer1->FileName = OpenDialog1->FileName; }
//MediaPlayer1->Frames = FramesJump->Position; MediaPlayer1->Open(); //MediaPlayer1->DeviceType = dtAVIVideo; //set Device compatibility to AVI MediaPlayer1->Display = Panel1; //Set display device to a TPanel
}
//--------------------------------------------------------------------------- void __fastcall TForm1::MediaPlayer1Click(TObject *Sender,
TMPBtnType Button, bool &DoDefault)
{
MediaPlayer1->Frames = 1;
switch (Button)
{
case btPlay:
Timer1->Interval = 5;
Timer1->Enabled = true; break;
case btPause:
Timer1->Enabled = false;
break;
case btStop:
Timer1->Enabled = false;
break;
} }
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{ Graphics::TBitmap *MyBmp;
MyBmp = new Graphics::TBitmap;
TCanvas *MyCanvas;
MyCanvas= new TCanvas;
HDC dc = GetDC(Panel1->Handle);
TRect rect = Panel1->ClientRect;
MyCanvas->Handle = dc;
MyBmp->Width = rect.Right - rect.Left;
MyBmp->Height = rect.Bottom - rect.Top; MyBmp->Canvas->CopyRect(rect,MyCanvas,rect);
MyBmp->PixelFormat=pf24bit; Image1->Picture->Bitmap->Assign(MyBmp);
Refresh(); }
//---------------------------------------------------------------------------