<!--CodeS-->
procedure TfGAME06.ViewReplay(sFileNameLeft : String; sFileNameRight : String);
begin
try
if nCameraCnt = 2 then begin
if FileExists(sFileNameLeft) and FileExists(sFileNameRight) then begin
//FilterGraph1.Active := False;
//FilterGraph1.ClearGraph;
//FilterGraph1.Active := True;
if FilterGraph1.Active = False then FilterGraph1.Active := True;
try
FilterGraph1.RenderFile(sFileNameLeft);
except on E : Exception do
begin
gDataModule.GUILog.WriteErrorLog( 'RenderFileEx1 E : ' + E.Message );
end;
end;
//FilterGraph2.Active := False;
//FilterGraph2.ClearGraph;
//FilterGraph2.Active := True;
if FilterGraph2.Active = False then FilterGraph2.Active := True;
try
FilterGraph2.RenderFile(sFileNameRight);
//FilterGraph2.RenderFile(sFileNameRight);
except on E : Exception do
begin
gDataModule.GUILog.WriteErrorLog( 'RenderFileEx2 E : ' + E.Message );
end;
end;
pnlReplayRight.Visible := True;
PnlReplayLeft.Visible := True;
//VMRTextOut( '▶REPLAY', VideoWindow1 );
//VMRTextOut( '▶REPLAY', VideoWindow2 );
FilterGraph2.Play;
FilterGraph1.Play;
end;
end
else if nCameraCnt = 1 then begin
if FileExists(sFileNameLeft) then begin
{
PnlReplayLeft.Width := Panel2.Width;
PnlReplayLeft.Height := Panel2.Height;
PnlReplayLeft.Top := Panel2.Top;
PnlReplayLeft.Left := Panel2.Left;
}
//PnlReplayLeft.Visible := True;
FilterGraph1.Active := False;
FilterGraph1.Active := True;
FilterGraph1.ClearGraph;
VideoWindow1.FilterGraph := FilterGraph1;
FilterGraph1.RenderFileEx(sFileNameLeft);
//VMRTextOut( '▶REPLAY', VideoWindow1 );
PnlReplayLeft.Visible := True;
FilterGraph1.Play;
end;
end;
except on E : Exception do
begin
PnlReplayLeft.Visible := False;
pnlReplayRight.Visible := False;
gDataModule.GUILog.WriteErrorLog( 'ViewReplay E : ' + E.Message );
gDataModule.GUILog.WriteErrorLog( 'FileName Left : ' + sFileNameLeft );
gDataModule.GUILog.WriteErrorLog( 'FileName Right : ' + sFileNameRight );
end;
end;
end;
<!--CodeE-->
위와 같은 코드로 2개의 영상을 한 폼의 두개의 비디오 윈도우로 재생합니다..
그런데 두 개의 파일이 거의 Sync된 좌우 녹화파일인데....
실제 재생을 해보면 이상하게 서로 동시에 플레이가 되질 않네요~
첫번째가 먼저 시작하고 끝난다던가...빈 화면이 뜬다던가 하는데...-_-;;;
위에 보면 필터그래프를 False하고 ClearGraph하고 다시 True하고 난 뒤 렌더링함수 호출하고....
Play를 하는데 먼가 로직에 문제가 있는건가요??
몇일동안 계속 이 현상때문에 순서도 바꿔보고 했는데..잘 안되네요..
조언 좀 부탁드립니다...즐프하세요..^^