mciSendString('Open e:\aa.avi type MpegVideo alias MyMMfile->0',0,0,0);
mciSendString('play   MyMMfile->0  ',0,0,0);
1、这样可以播放,但是确新打开了窗口,我想播放放到当前窗体里面
2、怎样在当前播放的视频画面里再放一个小窗口播放另外一部片子
谢谢了

解决方案 »

  1.   

    还有,我这个e:\aa.avi 怎样用变量来替代
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
        strAviFile: String;
    begin
        strAviFile := 'c:\ccrun\123.avi';
        mciSendString(PChar('Open ' + strAviFile + ' type MpegVideo alias MyAviFile'), nil, 0, 0);
        mciSendString(PChar('window MyAviFile handle ' + IntToStr(Integer(Handle))), nil, 0, 0);
        mciSendString('play MyAviFile', nil, 0, 0);
    end;
      

  3.   

    以上是在Form上播放AVI,如果要在其他窗口上,可以将
    IntToStr(Integer(Handle))
    换成相应的窗口的句柄,比如:
    IntToStr(Integer(Panel1.Handle))
      

  4.   

    谢谢。不过
    当前窗口什么也没放
    我是想把这个播放窗口放到我当前的form里来,也就是在FORM里播放
    是不是要在FORM上再放个什么控间?
    还有,我希望播放的视频上再有另外一个小窗口在放
    就像电视上的,主画面是一部片子,底部或者顶部还有一个小窗口在放另外一部片子
      

  5.   

    在panel上放也可以了,但是怎么控制视频大小呢?
    也就是要视频窗口和panel大小吻合,因为我不知道这个视频窗口的大小的
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
        strAviFile: String;
    begin
        strAviFile := 'd:\1.avi';
        mciSendString(PChar('Open ' + strAviFile + ' type MpegVideo alias MyAviFile parent '
        +IntToStr(Handle)+'  style '+IntToStr(WS_CHILD)), nil, 0, 0); //parent后面的就是窗口的句柄
        mciSendString(PChar('put  MyAviFile window at 100 100 200 200'),nil,0,0);  //window at 后面的分别是位置和大小
        mciSendString('play MyAviFile', nil, 0, 0);
    end;