Método IMediaControl::StopWhenReady (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 StopWhenReady método pausa el gráfico de filtros, lo que permite filtrar los datos en cola y, a continuación, detiene el gráfico de filtros.

Sintaxis

HRESULT StopWhenReady();

Valor devuelto

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

Código devuelto Descripción
S_OK
Correcto.
S_FALSE
El gráfico todavía estaba realizando la transición al estado en pausa cuando se devolvió el método.

Comentarios

Este método es útil si desea buscar el gráfico de filtro mientras se detiene el gráfico. Siempre y cuando se detenga el gráfico de filtro, los cambios en la posición actual no vuelven a pintar la ventana de vídeo con un nuevo fotograma. Por lo tanto, llamar a IMediaSeeking::SetPositions no actualiza la ventana de vídeo. Para actualizar la ventana después de la operación seek, llame a StopWhenReady. Este método realiza la transición del gráfico a un estado en pausa, espera a que se complete la operación de pausa y, a continuación, vuelve a pasar el gráfico a detenido. La operación de pausa pone en cola los datos del gráfico para que el representador de vídeo reciba y muestre el nuevo fotograma.

Este método es asincrónico. Espera a que se complete la pausa en un subproceso independiente. El subproceso que realiza la llamada no se bloquea, lo que permite a la aplicación responder a la entrada del usuario. Cuando el método vuelve, se detiene el estado lógico del grafo, incluso antes de que se complete la operación de pausa. Si llama al método IMediaControl::GetState en este momento, devuelve State_Stopped.

Si la aplicación emite otro comando de cambio de estado (por ejemplo, pausa, ejecución o búsqueda) antes de que se complete la operación de pausa, el nuevo comando cancela el comando de detención pendiente. La operación de pausa se completa, pero el gráfico no se detiene.

Requisitos

Requisito Value
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 (incluir Dshow.h)
Library Strmiids.lib

Consulte también

Códigos de error y éxito

IMediaControl (interfaz)