아래는 전번에 올린 질문과 답입니다.
===================================
비즈코리아 wrote:
>
> 웅...mediaplayer로 동영상을 화면에 올리면 잘 돌아갑니다.
> 근데...약 5분짜리 이 동영상을..한번 돌린후에 끝나면..다시 처음부터 자동으로
> 돌리고 싶은데...아무리해도 더 이상 돌아가지가않는군요...
> 아래처럼 어떤분의 말대로 했는대도 안됩니다.
>
> If (MediaPlayer1.NotifyValue = nvSuccessful) and (MediaPlayer1.Mode =
> mpStopped) then
> MediaPlayer1.Play;
>
>
> 어떤 event에 어떤 값을 넣어야하는지 답답합니다.
> 고수분들의 도움을 기다립니다.
> 1. 한가지 동영상(mpg 등등)을 계속해서 연결하여 반복재생시키는 방법과
> 2. 여러개의 동영상(mpg 등등)을 하나씩 재생해서 끝나면 그 다음 동영상을
> 자동으로 재생하는 방법을 알고싶습니다.
> 부탁드립니다.
> 그럼 이만.,
---------------------------------------------------------------------------------
저도 어케하는지 기억이 안나서 만들어 두었던 소스를 열어봤더니 이렇게 되어있더군요.
제 프로그램에서는 잘 돌아갑니다. 그리고, 제가 mmplayer.pas를 조금 수정해서 사용
했는데 이거랑은 관련이 없을것 같으네요.
참조하세요.
OnNotify event에 넣어주면 됩니다.
with MediaPlayer1 do
if Mode <> mpNotReady then
begin
if Length = Position then
Position := 0;
Notify := TRUE;
Play;
end;
ps : 무슨 프로젝트 하시는지 제게도 귀뜸좀 해주세요. ^^;;; 파하하하하...
==================
도와주신분이 올려준대로 해도 안되기는 마찬가지입니다.
덕분에 property 나 event에 대해서 무지하게 공부한
시간이 되어서 진심으로 답신에 감사드립니다.
그치만 아직 해결되지 않아서
다시한번 올립니다.
현재의 소스를 그대로 올려드립니다.
왜 연속재생이 안되는지요.
처음 한번은 잘돌아가고나서...
그 다음엔 그냥 서 있습니다.
상태는 playing 상태에로 나오고요...(분명히 동영상은 끝났는데...)
좀더 자세한 도움 부탁드립니다.
procedure Tform1.MediaPlayer1Notify(Sender: TObject);
begin
With Mediaplayer1 do
if (Mode <> mpnotReady)
or (Mode <> mpStopped) then
begin
if length = position then
position := 0;
notify := True;
Play;
end;
end;
procedure Tform1.FormCreate(Sender: TObject);
begin
MediaPlayer1.filename := 'c:위험.mpg';
MediaPlayer1.Open;
MediaPlayer1.DisplayRect := Panel6.ClientRect;
MediaPlayer1.Play;
MediaPlayer1.Notify := True;
end;
위의 상태로는 얀속재생이 되지 않습니다.
그래서 다음부분을 추가해서..player의 상태를 check했더니..
with Sender as TMediaPlayer do
begin
Tform1.Caption := ModeStr[Mode];
Notify := True;
Enabled := False;
end;
caption 에는
만 계속 떠있더군요.,,
동영상은 한번이 다 돌아서 끝났는데 왜 계속 play 인지..으으..
답답해서...다음과같은 문장으로 재차 해보았습니다.
procedure Tform1.MediaPlayer1Exit(Sender: TObject);
begin
MediaPlayer1.CLose;
MediaPlayer1.filename := 'c:위험.mpg';
MediaPlayer1.Open;
MediaPlayer1.Display := Panel6;
MediaPlayer1.DisplayRect := Panel6.ClientRect;
MediaPlayer1.AutoEnable := True;
MediaPlayer1.Play;
MediaPlayer1.Notify := True;
end;
이역시 처리되지 않았습니다.
그런데..문제는...
그 상테에서...mediaplyer가 display되는 panel에다가
onclick event에 다음처럼 주면 그 상태에서는
다시한번 더 돌아간다는거지요...으으..
물론 연속재생이 아니라..
한번 click할때마다 한번씩 돌아가요....으으
procedure Tform1.Panel6Click(Sender: TObject);
begin
MediaPlayer1.filename := 'c:위험.mpg';
MediaPlayer1.Open;
MediaPlayer1.Display := Panel6;
MediaPlayer1.DisplayRect := Panel6.ClientRect;
MediaPlayer1.AutoEnable := True;
MediaPlayer1.Play;
MediaPlayer1.Notify := True;
end;
도대체 연속재생시에 필요한 event와 처리방법을 알수가 없군요..
고수님들의 적극적인 도움을 기다립니다.
그럼 이만.
procedure TForm1.Button1Click(Sender: TObject);
begin
With MediaPlayer1 do
Begin
AutoEnable:= True;
AutoOpen:= True;
AutoRewind:= True;
Visible:= False;
FileName:='C:rarara.wav';
Tag:= 0;
Play;
End;
end;
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
With MediaPlayer1 do
Begin
Tag:= Tag + 1;
If Tag < 3 then MediaPlayer1.Play;
End;
end;
비즈 wrote:
> 아래는 전번에 올린 질문과 답입니다.
> ===================================
> 비즈코리아 wrote:
> >
> > 웅...mediaplayer로 동영상을 화면에 올리면 잘 돌아갑니다.
> > 근데...약 5분짜리 이 동영상을..한번 돌린후에 끝나면..다시 처음부터 자동으로
> > 돌리고 싶은데...아무리해도 더 이상 돌아가지가않는군요...
> > 아래처럼 어떤분의 말대로 했는대도 안됩니다.
> >
> > If (MediaPlayer1.NotifyValue = nvSuccessful) and (MediaPlayer1.Mode =
> > mpStopped) then
> > MediaPlayer1.Play;
> >
> >
> > 어떤 event에 어떤 값을 넣어야하는지 답답합니다.
> > 고수분들의 도움을 기다립니다.
> > 1. 한가지 동영상(mpg 등등)을 계속해서 연결하여 반복재생시키는 방법과
> > 2. 여러개의 동영상(mpg 등등)을 하나씩 재생해서 끝나면 그 다음 동영상을
> > 자동으로 재생하는 방법을 알고싶습니다.
> > 부탁드립니다.
> > 그럼 이만.,
>
> ---------------------------------------------------------------------------------
>
> 저도 어케하는지 기억이 안나서 만들어 두었던 소스를 열어봤더니 이렇게 되어있더군요.
> 제 프로그램에서는 잘 돌아갑니다. 그리고, 제가 mmplayer.pas를 조금 수정해서 사용
> 했는데 이거랑은 관련이 없을것 같으네요.
> 참조하세요.
> OnNotify event에 넣어주면 됩니다.
>
> with MediaPlayer1 do
> if Mode <> mpNotReady then
> begin
> if Length = Position then
> Position := 0;
>
> Notify := TRUE;
> Play;
> end;
>
> ps : 무슨 프로젝트 하시는지 제게도 귀뜸좀 해주세요. ^^;;; 파하하하하...
>
> ==================
> 도와주신분이 올려준대로 해도 안되기는 마찬가지입니다.
> 덕분에 property 나 event에 대해서 무지하게 공부한
> 시간이 되어서 진심으로 답신에 감사드립니다.
> 그치만 아직 해결되지 않아서
> 다시한번 올립니다.
>
> 현재의 소스를 그대로 올려드립니다.
> 왜 연속재생이 안되는지요.
> 처음 한번은 잘돌아가고나서...
> 그 다음엔 그냥 서 있습니다.
> 상태는 playing 상태에로 나오고요...(분명히 동영상은 끝났는데...)
> 좀더 자세한 도움 부탁드립니다.
>
> procedure Tform1.MediaPlayer1Notify(Sender: TObject);
> begin
> With Mediaplayer1 do
> if (Mode <> mpnotReady)
> or (Mode <> mpStopped) then
> begin
> if length = position then
> position := 0;
> notify := True;
> Play;
> end;
>
> end;
>
> procedure Tform1.FormCreate(Sender: TObject);
> begin
> MediaPlayer1.filename := 'c:위험.mpg';
> MediaPlayer1.Open;
> MediaPlayer1.DisplayRect := Panel6.ClientRect;
> MediaPlayer1.Play;
> MediaPlayer1.Notify := True;
> end;
>
> 위의 상태로는 얀속재생이 되지 않습니다.
> 그래서 다음부분을 추가해서..player의 상태를 check했더니..
>
> with Sender as TMediaPlayer do
> begin
> Tform1.Caption := ModeStr[Mode];
> Notify := True;
> Enabled := False;
> end;
>
> caption 에는
> 동영상은 한번이 다 돌아서 끝났는데 왜 계속 play 인지..으으..
>
>
> 답답해서...다음과같은 문장으로 재차 해보았습니다.
> procedure Tform1.MediaPlayer1Exit(Sender: TObject);
> begin
>
> MediaPlayer1.CLose;
> MediaPlayer1.filename := 'c:위험.mpg';
> MediaPlayer1.Open;
> MediaPlayer1.Display := Panel6;
> MediaPlayer1.DisplayRect := Panel6.ClientRect;
> MediaPlayer1.AutoEnable := True;
> MediaPlayer1.Play;
> MediaPlayer1.Notify := True;
> end;
>
> 이역시 처리되지 않았습니다.
>
>
> 그런데..문제는...
> 그 상테에서...mediaplyer가 display되는 panel에다가
> onclick event에 다음처럼 주면 그 상태에서는
> 다시한번 더 돌아간다는거지요...으으..
> 물론 연속재생이 아니라..
> 한번 click할때마다 한번씩 돌아가요....으으
> procedure Tform1.Panel6Click(Sender: TObject);
> begin
> MediaPlayer1.filename := 'c:위험.mpg';
> MediaPlayer1.Open;
> MediaPlayer1.Display := Panel6;
> MediaPlayer1.DisplayRect := Panel6.ClientRect;
> MediaPlayer1.AutoEnable := True;
> MediaPlayer1.Play;
> MediaPlayer1.Notify := True;
> end;
>
> 도대체 연속재생시에 필요한 event와 처리방법을 알수가 없군요..
> 고수님들의 적극적인 도움을 기다립니다.
> 그럼 이만.
>