亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? u_main.~pas

?? 一個利用DSPack開發的視頻軟件
?? ~PAS
字號:
{
    MTPlay V1.0 Write by ZHONG WAN at 2003.11

      -'`"_         -'`" \
     /     \       /      "
    /     /\\__   /  ___   \
   |      | \  -"`.-(   \   |
   |      |  |     | \"  |  |      萬重
   |     /  /  "-"  \  \    |
    \___/  /  (o o)  \  (__/       電郵(email):
         __| _     _ |__           mantousoft@163.com
        (      ( )      )
         \_\.-.___.-./_/           網址(homepage):
           __  | |  __             http://www.delphibox.com
          |  \.| |./  |
          | '#.   .#' |            OICQ: 163932
          |__/ '"" \__|
        -/             \-          2003.11

}

unit U_Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ExtCtrls, Menus, ImgList, DSPack, DSUtil, DirectShow9, ToolWin, ActnList,
  jpeg;

type
  Tfrm_Main = class(TForm)
    VideoWindow1: TVideoWindow;
    ImageList: TImageList;
    Timer1: TTimer;
    SaveDialog1: TSaveDialog;
    PopupMenu1: TPopupMenu;
    Play1: TMenuItem;
    Stop1: TMenuItem;
    N1: TMenuItem;
    Capture1: TMenuItem;
    Bitmap1: TMenuItem;
    N2: TMenuItem;
    FullScreen1: TMenuItem;
    OnTop1: TMenuItem;
    N3: TMenuItem;
    Close1: TMenuItem;
    Panel1: TPanel;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    MainMenu1: TMainMenu;
    File1: TMenuItem;
    Play2: TMenuItem;
    ActionList1: TActionList;
    A_Option: TAction;
    A_Play: TAction;
    A_Stop: TAction;
    P1: TMenuItem;
    S1: TMenuItem;
    StatusBar1: TStatusBar;
    A_Capture: TAction;
    A_OnTop: TAction;
    A_FullScreen: TAction;
    A_Bitmap: TAction;
    N4: TMenuItem;
    C1: TMenuItem;
    B1: TMenuItem;
    N5: TMenuItem;
    F1: TMenuItem;
    T1: TMenuItem;
    A_Exit: TAction;
    O1: TMenuItem;
    N6: TMenuItem;
    X1: TMenuItem;
    SampleGrabber1: TSampleGrabber;
    SaveDialog2: TSaveDialog;
    OpenDialog1: TOpenDialog;
    A_File: TAction;
    E1: TMenuItem;
    N7: TMenuItem;
    E2: TMenuItem;
    Image1: TImage;
    ASFWriter1: TASFWriter;
    Image2: TImage;
    ToolButton6: TToolButton;
    procedure A_OptionExecute(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure A_PlayExecute(Sender: TObject);
    procedure A_StopExecute(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure A_CaptureExecute(Sender: TObject);
    procedure A_OnTopExecute(Sender: TObject);
    procedure A_FullScreenExecute(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure A_ExitExecute(Sender: TObject);
    procedure A_BitmapExecute(Sender: TObject);
    procedure A_FileExecute(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
  private
    CapFName: WideString;
    procedure VMRTextOut(AText: string);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frm_Main: Tfrm_Main;

implementation

uses U_Option;

{$R *.dfm}

procedure Tfrm_Main.A_OptionExecute(Sender: TObject);
begin
  frm_Option.ShowModal;
end;

procedure Tfrm_Main.Timer1Timer(Sender: TObject);
var
  Position: int64;
  Rate: Double;
  Hour, Min, Sec, MSec: Word;
const
  MiliSecInOneDay = 86400000;
begin
  if frm_Option.FilterGraph.Active then
  begin
    with frm_Option.FilterGraph as IMediaSeeking do
    begin
      GetCurrentPosition(Position);
      GetRate(Rate);
    end;
    DecodeTime(Position div 10000 / MiliSecInOneDay, Hour, Min, Sec, MSec);
    StatusBar1.SimpleText := Format('%d:%d:%d:%d', [Hour, Min, Sec, MSec]);
  end;
end;

procedure Tfrm_Main.VMRTextOut(AText: string);
var
  VMRBitmap: TVMRBitmap;
begin
  if AText = '' then exit;
  VMRBitmap := TVMRBitmap.Create(VideoWindow1);
  with VMRBitmap, Canvas do
  begin
    LoadEmptyBitmap(VideoWindow1.Width, VideoWindow1.Height, pf24bit, clSilver);
    Source := VMRBitmap.Canvas.ClipRect;
    Options := VMRBitmap.Options + [vmrbSrcColorKey];
    ColorKey := clSilver;
    Brush.Color := clSilver;
    Font := frm_Option.AFont;
    TextOut(0, 0, AText);
    DrawTo(0, 0, 1, 1, 0.5);
  end;
  VMRBitmap.Free;
end;

procedure Tfrm_Main.A_PlayExecute(Sender: TObject);
var
  Multiplexer: IBaseFilter;
  Writer: IFileSinkFilter;
  PinList: TPinList;
  i: integer;
  FSize: TPoint;
begin
  with frm_Option do
  begin
    // Change Form size
    if CB_VideoFormats.ItemIndex <> -1 then
    begin
      FSize := GetMediaTypeOfSize(VideoMediaTypes.Items[CB_VideoFormats.ItemIndex].AMMediaType^);
      if FSize.X <> 0 then
        frm_Main.Width := FSize.X + 8;
      if FSize.Y <> 0 then
        frm_Main.Height := FSize.Y + 94;
    end;
    // Change mode
    FilterGraph.Mode := gmCapture;
    // Activate the filter graph, at this stage the source filters are added to the graph
    FilterGraph.Active := true;
    // configure output Audio media type + source
    if AudioSourceFilter.FilterGraph <> nil then
    begin
      PinList := TPinList.Create(AudioSourceFilter as IBaseFilter);
      i := 0;
      while i < PinList.Count do
        if PinList.PinInfo[i].dir = PINDIR_OUTPUT then
        begin
          if CB_AudioFormats.ItemIndex <> -1 then
            with (PinList.Items[i] as IAMStreamConfig) do
              SetFormat(AudioMediaTypes.Items[CB_AudioFormats.ItemIndex].AMMediaType^);
          PinList.Delete(i);
        end else inc(i);
      if CB_InputLines.ItemIndex <> -1 then
        with (PinList.Items[CB_InputLines.ItemIndex] as IAMAudioInputMixer) do
          put_Enable(true);
      PinList.Free;
    end;
    // configure output Video media type
    if VideoSourceFilter.FilterGraph <> nil then
    begin
      PinList := TPinList.Create(VideoSourceFilter as IBaseFilter);
      if CB_VideoFormats.ItemIndex <> -1 then
        with (PinList.First as IAMStreamConfig) do
          SetFormat(VideoMediaTypes.Items[CB_VideoFormats.ItemIndex].AMMediaType^);
      PinList.Free;
    end;
    // now render streams
    with FilterGraph as IcaptureGraphBuilder2 do
    begin
      // Connect Video preview (VideoWindow)
      if VideoSourceFilter.BaseFilter.DataLength > 0 then
        RenderStream(@PIN_CATEGORY_PREVIEW, nil, VideoSourceFilter as IBaseFilter,
          nil, VideoWindow1 as IBaseFilter);
      // In capture mode
      if A_Capture.Checked then
      begin
        // set the output filename
        SetOutputFileName(MEDIASUBTYPE_Avi, PWideChar(CapFName), Multiplexer, Writer);
        // Connect Video capture streams
        if VideoSourceFilter.FilterGraph <> nil then
          RenderStream(@PIN_CATEGORY_CAPTURE, nil, VideoSourceFilter as IBaseFilter,
            nil, Multiplexer as IBaseFilter);
        // Connect Audio capture streams
        if AudioSourceFilter.FilterGraph <> nil then
        begin
          RenderStream(nil, nil, AudioSourceFilter as IBaseFilter,
            nil, Multiplexer as IBaseFilter);
        end;
      end;
    end;
    FilterGraph.Play;
    VMRTextOut(frm_Option.E_Text.Text); //字幕
    Timer1.Enabled := true;
  end;
  A_Play.Checked := True;
  A_Capture.Enabled := True;
end;

procedure Tfrm_Main.A_StopExecute(Sender: TObject);
begin
  Timer1.Enabled := False;
  A_Play.Checked := False;
  frm_Option.FilterGraph.Stop;
  frm_Option.FilterGraph.Active := False;
  
  VideoWindow1.Canvas.Lock;
  try
    VideoWindow1.Canvas.StretchDraw(VideoWindow1.Canvas.ClipRect, Image1.Picture.Graphic);
  finally
    VideoWindow1.Canvas.Unlock;
  end;
end;

procedure Tfrm_Main.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  A_Stop.Execute;
end;

procedure Tfrm_Main.A_CaptureExecute(Sender: TObject);
begin
  A_Stop.Execute;
  if CapFName = '' then
  begin
    if not SaveDialog1.Execute then Exit;
    A_Capture.Checked := True;
    CapFName := SaveDialog1.FileName;
  end else
  begin
    A_Capture.Checked := False;
    CapFName := '';
  end;
  A_Play.Execute;
end;

procedure Tfrm_Main.A_OnTopExecute(Sender: TObject);
begin
  A_OnTop.Checked := not A_OnTop.Checked;
  if A_OnTop.Checked then
    SetWindowPos(handle, HWND_TOPMOST, Left, Top, Width, Height, 0) else
    SetWindowPos(handle, HWND_NOTOPMOST, Left, Top, Width, Height, 0);
end;

procedure Tfrm_Main.A_FullScreenExecute(Sender: TObject);
begin
  A_FullScreen.Checked := not A_FullScreen.Checked;
  VideoWindow1.FullScreen := A_FullScreen.Checked;
end;

procedure Tfrm_Main.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  // Esc exit full screen mode
  if Key = 27 then
  begin
    A_FullScreen.Checked := True;
    A_FullScreen.Execute;
  end;
end;

procedure Tfrm_Main.A_ExitExecute(Sender: TObject);
begin
  Close;
end;

procedure Tfrm_Main.A_BitmapExecute(Sender: TObject);
var
  ABitmap: TBitmap;
//  AStream: TMemoryStream;
begin
  if not SaveDialog2.Execute then exit;
  ABitmap := TBitmap.Create;
//  AStream := TMemoryStream.Create;
  try
//    VideoWindow1.VMRGetBitmap(AStream);
    SampleGrabber1.GetBitmap(ABitmap);
//    AStream.SaveToFile(SaveDialog2.FileName);
    ABitmap.SaveToFile(SaveDialog2.FileName);
  finally
//    AStream.Free;
    ABitmap.Free;
  end;
end;

procedure Tfrm_Main.A_FileExecute(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    A_Stop.Execute; //停止
//    frm_Option.FilterGraph.Mode := gmNormal;
    frm_Option.FilterGraph.Active := True;
    frm_Option.FilterGraph.RenderFile(OpenDialog1.FileName);
    frm_Option.FilterGraph.Play;
    VMRTextOut(frm_Option.E_Text.Text); //字幕
    Timer1.Enabled := True;
    A_Play.Checked := True;
    A_Capture.Enabled := False;
  end;
end;

procedure Tfrm_Main.ToolButton6Click(Sender: TObject);
begin
  SampleGrabber1.GetBitmap(Image1.Picture.Bitmap);
  Image.Picture.SaveToFile('c:\photo\1.bmp');
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲三级免费观看| 亚洲免费电影在线| 欧美亚洲国产一区二区三区| 久久99国产精品免费网站| 亚洲欧洲av在线| 精品少妇一区二区三区视频免付费 | 日韩免费一区二区| 色88888久久久久久影院野外| 国产一区二区三区四区五区入口 | 99精品久久99久久久久| 久久国产精品第一页| 一区二区三区成人在线视频| 国产午夜精品一区二区三区视频| 欧美久久久久久久久久| 91蝌蚪国产九色| 国产成人精品综合在线观看 | 奇米影视一区二区三区| 亚洲最新视频在线播放| 国产精品久久久久久久久搜平片 | 岛国一区二区三区| 另类小说欧美激情| 日韩电影在线免费| 亚洲一区二区三区影院| 中文字幕永久在线不卡| 国产欧美日韩精品一区| 精品福利一二区| 日韩一区二区三区免费观看| 欧美疯狂做受xxxx富婆| 欧美性生活久久| 欧美性色aⅴ视频一区日韩精品| 粉嫩av一区二区三区粉嫩 | 国内成+人亚洲+欧美+综合在线| 亚洲高清三级视频| 午夜一区二区三区视频| 亚洲国产另类精品专区| 亚洲一区二区视频在线观看| 亚洲一区二区三区国产| 亚洲国产中文字幕| 午夜电影一区二区| 日韩成人一级大片| 麻豆精品一区二区av白丝在线| 欧美bbbbb| 精品伊人久久久久7777人| 久久99精品国产.久久久久久| 麻豆精品久久久| 精品一区二区三区影院在线午夜| 精品一区二区三区免费| 国产精品综合网| 高清不卡一二三区| 91色综合久久久久婷婷| 欧美亚洲综合色| 91麻豆精品久久久久蜜臀| 欧美一区二区三区公司| 精品欧美乱码久久久久久1区2区| 精品国产一区二区国模嫣然| 国产日韩av一区| 亚洲品质自拍视频| 天天色图综合网| 韩国成人在线视频| 成人影视亚洲图片在线| 一本大道久久a久久综合| 在线观看区一区二| 欧美成人女星排名| 亚洲国产精品ⅴa在线观看| 亚洲人成伊人成综合网小说| 亚洲精品美国一| 日韩av一区二| 成人短视频下载| 欧美日韩国产综合一区二区三区| 日韩免费福利电影在线观看| 欧美经典一区二区| 91免费国产视频网站| 久久综合色婷婷| 国产中文一区二区三区| 亚洲免费资源在线播放| 欧美日韩一区成人| 欧洲av一区二区嗯嗯嗯啊| 色综合天天综合网天天看片| 成人sese在线| 国产精品18久久久久久久久| 国产精品91xxx| 97久久久精品综合88久久| 欧美午夜片在线看| 欧美一区二区三区免费大片| 久久噜噜亚洲综合| 欧美国产日韩a欧美在线观看 | 香蕉影视欧美成人| 日本欧美久久久久免费播放网| 裸体健美xxxx欧美裸体表演| 国产成人超碰人人澡人人澡| 欧美专区日韩专区| 日韩欧美一区电影| 亚洲欧洲日本在线| 丝袜亚洲精品中文字幕一区| 国产一区二区看久久| 日本高清免费不卡视频| 欧美成人精品二区三区99精品| 国产精品色呦呦| 麻豆成人免费电影| 精品美女一区二区三区| 亚洲电影一级黄| 91麻豆swag| 在线中文字幕一区二区| 色婷婷久久久亚洲一区二区三区| 精品久久久网站| 亚洲图片欧美色图| 国产传媒欧美日韩成人| 欧美伊人久久久久久久久影院| 国产欧美日产一区| 狠狠色狠狠色综合| 欧美日本国产视频| 国产蜜臀av在线一区二区三区| 91啪在线观看| 在线免费不卡电影| 欧美成人一区二区三区| 午夜亚洲国产au精品一区二区| 亚洲一区二区欧美激情| 国产美女精品一区二区三区| 欧洲精品一区二区三区在线观看| 中文字幕精品综合| 国产伦精品一区二区三区视频青涩| 欧美三电影在线| 亚洲激情图片qvod| 99热这里都是精品| 中文字幕 久热精品 视频在线| 免费在线看成人av| 一区二区三区影院| 久久久久久久综合日本| 国产精品美女久久久久久2018 | 中文字幕欧美激情一区| 狠狠狠色丁香婷婷综合久久五月| 91精品国产综合久久精品麻豆 | 色综合天天天天做夜夜夜夜做| 欧美国产综合一区二区| 国产乱人伦精品一区二区在线观看| 欧美一区二区久久| 天天做天天摸天天爽国产一区| 欧美日韩在线播放三区四区| 亚洲国产日韩a在线播放| 欧美精品色综合| 日本视频一区二区| 日韩一区二区精品葵司在线| 老司机精品视频导航| 亚洲精品在线免费观看视频| 国产一区二区精品久久| 欧美激情自拍偷拍| 99在线精品一区二区三区| 亚洲欧洲成人自拍| 91搞黄在线观看| 天天色综合天天| 日韩视频一区二区三区| 免费在线观看一区二区三区| 2023国产精华国产精品| 大尺度一区二区| 成人欧美一区二区三区视频网页 | 欧美色窝79yyyycom| 午夜精品福利久久久| 欧美一级片在线看| 国产精品99久久久久久久vr| 国产精品免费看片| 色激情天天射综合网| 亚洲成人自拍偷拍| 日韩一区二区中文字幕| 精品在线一区二区| 国产精品久久久久久亚洲伦| 欧美亚洲综合在线| 久久99久久99| 亚洲欧洲精品天堂一级| 欧美日韩国产精品自在自线| 久久9热精品视频| 成人欧美一区二区三区| 欧美日韩精品高清| 国产精品夜夜嗨| 亚洲欧美一区二区不卡| 制服.丝袜.亚洲.中文.综合| 国产成人在线视频播放| 亚洲综合网站在线观看| 欧美zozozo| 91久久国产综合久久| 狠狠色丁香婷综合久久| 亚洲美女视频在线| 欧美成人女星排行榜| 日本电影亚洲天堂一区| 国精产品一区一区三区mba视频| 最新国产成人在线观看| 日韩一区二区免费视频| 99热在这里有精品免费| 九色|91porny| 亚洲综合丁香婷婷六月香| 久久精品一区四区| 欧美日本国产视频| 91丨porny丨蝌蚪视频| 久久se这里有精品| 午夜精品久久久久久久久久久 | 欧美经典一区二区三区| 欧美一级日韩免费不卡| 91黄视频在线观看| 岛国精品在线观看| 久99久精品视频免费观看| 性欧美大战久久久久久久久|