Q&A

  • 동영상 파일 재생을 어떻게 해야할지...구현은 해봤는데..안되요
AVI 동영상 파일을 재생해서 보는 거 test하고 있는데요..
책에서 이렇게하면 된다구해서 해봤는데..계속 '현재 연주 불가능'이 나오네요..
초보라서..어떻게 해야하는지 잘 모르겠어요..
제가 어디가 잘못된건지 가르쳐주세요..
Panel을 통해 보여질 수는 있는건지...답답..




unit untMediaPlayer;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls , StdCtrls, MPlayer,MMSystem ,Buttons, ComCtrls;

type
  TForm1 = class(TForm)
    MediaPlayer1: TMediaPlayer;
    Panel1: TPanel;
    Label1: TLabel;
    Timer1: TTimer;
    Label2: TLabel;
    procedure MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
      var DoDefault: Boolean);
    procedure MediaPlayer1Notify(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
  var DoDefault: Boolean);
begin
  case Button of
    btPlay : Label1.caption := 'Play' ;
    btStop : Label1.Caption := 'Stop';
    btPause : Label1.Caption := 'Pause' ;
  end ;
end;

procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
  if (MediaPlayer1.NotifyValue = nvSuccessful) and (MediaPlayer1.Mode = mpStopped) then
     Label1.Caption := 'Play가 완료되었습니다.' ;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  try
    MediaPlayer1.DeviceType :=  dtAVIVideo ;
    MediaPlayer1.FileName := 'a.avi';
    MediaPlayer1.Open ;
    MediaPlayer1.Display := Panel1 ;
  except
    Showmessage('파일을 찾을수가 없습니다.') ;
  end ;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  case MediaPlayer1.Mode of
    mpNotReady : Label2.Caption := ' 연주 준비가 안됨' ;
    mpStopped : Label2.Caption :=  '멈춤' ;
    mpPlaying : Label2.Caption := '연주중' ;
    mpPaused : Label2.Caption := '잠깐 멈춤' ;
    mpOpen : Label2.Caption := '연주 준비됨' ;
  else
    Label2.Caption := '현재 연주 불가능 ' ;
  end ;
  
end;

end.
3  COMMENTS
  • Profile
    최용일 2002.08.22 20:35
    안녕하세요. 최용일입니다.

    먼저 a.avi란 파일이 존재하는가 보세요...

    그냥 파일명만 대입하시면 못찾을 수도 있으니까 풀패스를 넣어주세요...

    혹시 모르니까 Open하고 Display한번 바꾸어보세요..

    MediaPlayer1.FileName := 'C:a.avi';
    MediaPlayer1.Display := Panel1 ;
    MediaPlayer1.Open ;

    ^^ 항상 즐코하세요...

  • Profile
    이정규 2002.08.23 23:49
    대답해주셔서 감사합니다..
    그런데요..
    풀패스로 넣어주는 부분을 소스에서도 해주고 Object Instroctor에서도 FileName에 찾아서 넣어주었는데..안되네요
    말씀하신대로 Display하고 OPEN을 바꿨는데도요
    음...계속 현재 연주 불가능이라는 것이 나오는데...
    MediaPlayer의 Mode에 현재 어떤 내용이 들어오는지 확인할 수 있을까요?
    그외에 제가 소스에서 빼먹은 부분이 있나요?
    미디어쪽은 생초보라서 정말 모르겠네요
    답변 부탁드립니다.

  • Profile
    최용일 2002.08.24 00:01
    흠~ 제가 테스트 해보니까 제대로 되는데요...

    파일을 제대로 로딩했다면 멈춤이라고 표시되거든요...

    혹시 AVI파일을 플레이하기 위한 코덱이 설치되어 있지는 않은지 모르겠네요...

    ^^ 항상즐코하세요...