Aperçu d’un Project

[Cette API n’est pas prise en charge et peut être modifiée ou non disponible à l’avenir.]

Pour afficher un aperçu d’un projet, appelez d’abord CoCreateInstance pour créer une instance du moteur de rendu de base. L’identificateur de classe est CLSID _ RenderEngine. Appelez ensuite la méthode IRenderEngine :: SetTimelineObject pour spécifier la chronologie que vous rendez.

La première fois que vous affichez un aperçu de la chronologie, effectuez les appels suivants dans l’ordre indiqué :

  1. Appelez IRenderEngine :: SetRenderRange pour spécifier la partie de la chronologie à afficher. (facultatif)
  2. Appelez IRenderEngine :: ConnectFrontEnd pour créer le composant frontal du graphique.
  3. Appelez IRenderEngine :: RenderOutputPins. Cette méthode connecte chaque broche de sortie à un convertisseur vidéo ou audio, en terminant le graphique.

L’exemple de code suivant illustre ces étapes :

IRenderEngine *pRender = NULL; 
hr = CoCreateInstance(CLSID_RenderEngine, NULL, 
    CLSCTX_INPROC_SERVER, IID_IRenderEngine, (void**)&pRender);

hr = pRender->SetTimelineObject(pTL);
hr = pRender->ConnectFrontEnd();
hr = pRender->RenderOutputPins();

Exécutez maintenant le graphique de filtre. tout d’abord, appelez la méthode IRenderEngine :: GetFilterGraph pour récupérer un pointeur vers l’interface IGraphBuilder du gestionnaire de Graph. interrogez ensuite le gestionnaire de Graph de filtre pour l’interface imediacontrol et appelez imediacontrol :: Run, comme indiqué dans le code suivant :

IGraphBuilder   *pGraph = NULL;
IMediaControl   *pControl = NULL;
hr = pRender->GetFilterGraph(&pGraph);
hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
hr = pControl->Run();

utilisez l’interface IMediaEventEx du gestionnaire de Graph pour attendre la fin de la préversion. vous pouvez également rechercher le graphique à l’aide de l’interface IMediaSeeking du gestionnaire de Graph, comme vous le feriez avec un graphique de lecture de fichier.

Pour réafficher un aperçu du projet, recherchez à nouveau le graphique sur l’heure zéro et rappelez l' exécution . Si vous modifiez le contenu de la chronologie, procédez comme suit :

  1. Appelez SetRenderRange. (facultatif)
  2. Appelez ConnectFrontEnd.
  3. Si la méthode ConnectFrontEnd retourne S _ WARN _ OUTPUTRESET, appelez RenderOutputPins. (Si ConnectFrontEnd retourne S _ OK, vous pouvez ignorer cette étape.)
  4. Recherche le graphique sur l’heure zéro.
  5. Exécutez le graphique.

L’exemple suivant illustre ces étapes :

hr = pRender->ConnectFrontEnd();
if (hr == S_WARN_OUTPUTRESET)
{
    hr = pRender->RenderOutputPins();
}
LONGLONG llStart = 0; 
hr = pSeek->SetPositions(&llStart, AM_SEEKING_AbsolutePositioning, 0, 0); 
hr = pControl->Run();

Pour obtenir un exemple complet qui charge et affiche un aperçu d’un fichier projet, consultez chargement et aperçu d’un Project.

Gestion des projets de montage vidéo

Rendu d’un Project