pessoal eu estou fazendo um programinha onde existe um player embutido, o player apenas starta o vídeo,
eu uso o directShow para rodar o vídeo o problema é que quero que após o vídeo ser finalizado, ou seja seu tempo de duração acabar, um evento seja carregado. alguém sabe como posso fazer isso?
o meu código esta desta forma?
public frmPrincipal()
{
...
carregaVideo(spot); //Chama a função que carrega o video passando a classe que contem a localização do vídeo
atualizaSpot(this,eventsArgs.Empty); //chama a função após terminar a exibição do vídeo
...
}
private void carregaVideo(Spot spot)
{
//Verifica existencia do video
if (File.Exists(spot.Localizacao))
{
//Criando instancia do FilterGraph
graphBuilder = (DirectShowLib.IGraphBuilder)new FilterGraph();
//Solicita ao Filter graph para selecionar os codecs
graphBuilder.RenderFile(spot.Localizacao, string.Empty);
}
else
return;
mediaCtrl = (DirectShowLib.IMediaControl)graphBuilder;
videoWin = (DirectShowLib.IVideoWindow)graphBuilder;
mediaEvt = (DirectShowLib.IMediaEventEx)graphBuilder;
mediaPos = (DirectShowLib.IMediaPosition)graphBuilder;
//configura o IVideoWindow para a exibição no painel
//Passando ao IVideoWindow o Handle do componente que deverá receber o video
videoWin.put_Owner(panelVideo.Handle);
//Configura o stilo da janela
videoWin.put_WindowStyle(WindowStyle.Child | WindowStyle.ClipChildren);
//Configura o tamanho e posição do video dentro do Panel
videoWin.SetWindowPosition(0, 0, panelVideo.Width, panelVideo.Height);
//Torna visivel o video dentro do Panel
videoWin.put_Visible(OABool.True);
//executa o vídeo
mediaCtrl.Run();
}
Obrigado!