線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1914
推到 Plurk!
推到 Facebook!

MediaPlayer顯示於Panel1為何不見第一張影像?

 
jasbeing
一般會員


發表:6
回覆:19
積分:5
註冊:2002-08-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-02-06 18:04:06 IP:140.135.xxx.xxx 訂閱
程式碼如下:
以所有系統中有的clock.avi測試,
MediaPlayer顯示於Panel1為何不見第一張影像,又該如何解決?
<textarea class="BCB" rows="10" cols="60" name="code"> MediaPlayer1->FileName="C:\\clock.avi"; MediaPlayer1->Open(); MediaPlayer1->Display = Panel1; MediaPlayer1->Play();</textarea> 謝謝。
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-02-06 19:41:12 IP:59.124.xxx.xxx 未訂閱
我試的結果第一張(顯示數字1,指到一點)會出現壓
用Windows內建的Mediaplayer撥放也是一樣

jasbeing
一般會員


發表:6
回覆:19
積分:5
註冊:2002-08-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-02-06 20:47:44 IP:140.135.xxx.xxx 訂閱
我也試過其他電腦,也試看的到1,但是如果是其他avi檔,有時也不見第一張,有時或閃爍,用doublebuffer可解決嗎?如何才能改善,謝謝大大的回覆。

我想你的電腦是獨立顯示卡,因為我試過幾部電腦 OnBord 的顯示卡,有時也不見第一張,有時或閃爍,而獨立顯示卡皆OK?doublebuffer無法改善,現在正苦惱這個問題如何解決。

taishyang你也可以試試OnBord 的顯示卡的電腦,也許是我測的不夠多,下的結論是錯的吧,也希望大家有空試試,並把結果告知,感激不盡。
n890377
一般會員


發表:17
回覆:16
積分:21
註冊:2006-07-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-02-07 23:33:08 IP:220.134.xxx.xxx 訂閱
Panel不能顯示avi的畫面嗎???
試試看以下code:
<textarea class="cpp" rows="10" cols="60" name="code"> void __fastcall TForm1::Button3Click(TObject *Sender) { if(OpenDialog1->Execute()) { MediaPlayer1->FileName = OpenDialog1->FileName; } //MediaPlayer1->Frames = FramesJump->Position; MediaPlayer1->Open(); ScrollBar1->Enabled = true; ScrollBar1->SetFocus(); ScrollBar1->Max = MediaPlayer1->Length; MediaPlayer1->Frames = 1; MediaPlayer1->Display = Panel3; //Set display device to a TPanel } void __fastcall TForm1::MediaPlayer1Click(TObject *Sender, TMPBtnType Button, bool &DoDefault) { //MediaPlayer1->Frames = 100; switch (Button) { case btPlay: Timer3->Interval = 5; Timer3->Enabled = true; break; case btPause: Timer3->Enabled = false; break; } } void __fastcall TForm1::Timer3Timer(TObject *Sender) { Graphics::TBitmap *Bmp= new Graphics::TBitmap;; TCanvas *MyCanvas= new TCanvas;; HDC dc = GetDC(Panel3->Handle); TRect rect = Panel3->ClientRect; MyCanvas->Handle = dc; Bmp->Width = rect.Right - rect.Left; Bmp->Height = rect.Bottom - rect.Top; Bmp->Canvas->CopyRect(rect,MyCanvas,rect); Bmp->PixelFormat=pf24bit; Image2->Picture->Bitmap->Assign(Bmp); Form1->DoubleBuffered=true ; delete Bmp; delete MyCanvas; } </textarea>
------
.
jasbeing
一般會員


發表:6
回覆:19
積分:5
註冊:2002-08-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-02-08 14:42:38 IP:140.135.xxx.xxx 訂閱
謝謝n890377的回應,在Button3Click中,最後加入MediaPlayer1->Play();仍然無法顯示第一張影像,我仍然覺得是顯示卡OnBord與否的問題。

而在n890377的回應,Timer3Timer中,把Panel3內容顯示於Form1的Image2上,使用DoubleBuffered可以改善閃爍的問題,但是若Panel3無法顯示第一張影像,Image2上也無第一張影像。

未能解決我的問題,但仍然謝謝n890377的回應。
jasbeing
一般會員


發表:6
回覆:19
積分:5
註冊:2002-08-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-03-08 00:19:07 IP:211.76.xxx.xxx 訂閱
雖然皆未解決我的問題,但為鼓勵n890377的回應,所以taishyang抱歉了。
系統時間:2024-03-29 13:42:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!