Método IMediaControl::Run (control.h)

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

El Run método ejecuta todos los filtros del gráfico de filtros. Mientras se ejecuta el grafo, los datos se mueven por el grafo y se representan.

Sintaxis

HRESULT Run();

Valor devuelto

Devuelve un valor HRESULT . Estos son algunos de los valores posibles.

Código devuelto Descripción
S_FALSE
El grafo se está preparando para ejecutarse, pero algunos filtros no han completado la transición a un estado en ejecución.
S_OK
Todos los filtros del gráfico completaron la transición a un estado en ejecución.

Observaciones

Si se detiene el grafo de filtro, este método pausa el gráfico antes de ejecutarse. Si el gráfico ya se está ejecutando, el método devuelve S_OK pero no tiene ningún efecto.

El gráfico se ejecuta hasta que la aplicación llama al método IMediaControl::P ause o IMediaControl::Stop . Cuando la reproducción llega al final de la secuencia, el gráfico continúa ejecutándose, pero los filtros no transmiten más datos. En ese momento, la aplicación puede pausar o detener el gráfico. Para obtener información sobre el evento de fin de secuencia, vea IMediaControl::P ause y EC_COMPLETE.

Este método no busca el principio de la secuencia. Por lo tanto, si ejecuta el gráfico, lo pausa y, a continuación, vuelve a ejecutarlo, la reproducción se reanuda desde la posición en pausa. Si ejecuta el gráfico después de que haya llegado al final de la secuencia, no se representa nada. Para buscar el gráfico, use la interfaz IMediaSeeking .

Si el método devuelve S_FALSE, significa que el método devuelto antes de que todos los filtros cambien a un estado en ejecución. Los filtros completarán la transición después de que el método devuelva. Opcionalmente, puede esperar a que se complete la transición llamando al método IMediaControl::GetState con un valor de tiempo de espera. pero esto no es obligatorio.

Si el método Run devuelve un código de error, significa que uno o varios filtros no se pudieron ejecutar. Sin embargo, algunos filtros podrían estar en estado de ejecución. En un gráfico de varias secuencias, es posible que las secuencias completas se estén reproduciendo correctamente. Normalmente, la aplicación anularía el gráfico y notificaría un error en este caso.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado control.h (include Dshow.h)
Library Strmiids.lib

Consulte también

Códigos de error y éxito

IMediaControl (interfaz)