C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[40147] Window Media Player ActiveX에서...
鄭明基.발그미 [bright] 1265 읽음    2005-05-12 19:33
WMP 10 를 ActiveX로 임포트하고 다음과 같이 하여 동영상 파일을 캡쳐 할 수 있었습니다.
그런데 이것은  해당 플레이어 화면에서 오른쪽 마우스 버튼을 클릭하고 
옵션 -> 성능 -> 고급 -> 비디오 가속 -> 비디오 믹싱 렌더러 사용 -> 고화질 모드 사용
을 check 해야 제대로 되는 군요.. 혹시 그 옵션에 대한 프로퍼티나 메소드가 있을텐데
못 찾겠네요.. 찾아주실 분 계세요?

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Capture_Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "WMPLib_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
        if(OpenDialog1->Execute())  {
                Edit1->Text = OpenDialog1->FileName;
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        WMPlayer1->URL = (WideString) Edit1->Text;
        WMPlayer1->controls->play();    
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
        WMPlayer1->controls->pause();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
        WMPlayer1->controls->pause();

        Graphics::TBitmap *Cap = new Graphics::TBitmap();
        HDC DC; /*
        TPanel *tmp = new TPanel(this);
        tmp->Width = WMPlayer1->Width;
        tmp->Height = WMPlayer1->Height;
        tmp->Top = WMPlayer1->Top;
        tmp->Left = WMPlayer1->Left;
        tmp->Visible = true;
        tmp->Visible = false;
        delete tmp; */
        //WMPlayer1->settings->setMode()

        Cap->Width = WMPlayer1->ClientWidth;
        Cap->Height = WMPlayer1->ClientHeight;
        // WMPlayer1->currentMedia->get_imageSourceHeight() 잘 보자~
        DC = GetDC(WMPlayer1->Handle);
        BitBlt(Cap->Canvas->Handle,WMPlayer1->ClientRect.top,
                WMPlayer1->ClientRect.left,Cap->Width,Cap->Height,DC,0,0,SRCCOPY);

        Image1->Picture->Bitmap = Cap;
        ReleaseDC(WMPlayer1->Handle,DC);
        WMPlayer1->controls->play();
        Label1->Caption = "X : " + IntToStr(Image1->Picture->Width) + ", Y : "
                + IntToStr(Image1->Picture->Height);
}
//---------------------------------------------------------------------------

+ -

관련 글 리스트
40147 Window Media Player ActiveX에서... 鄭明基.발그미 1265 2005/05/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.