Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
[La característica asociada a esta página, DirectShow es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine, y Captura de audio y 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 useMediaPlayer, IMFMediaEngine y Captura de audio y vídeo en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft recomienda reescribir el código actual que usa las API heredadas para usar las nuevas API si es posible.]
El GetState método recupera el estado del gráfico de filtro, en pausa, en ejecución o detenido.
Las transiciones de estado no son necesariamente sincrónicas. Por lo tanto, cuando se llama a este método, el gráfico de filtros podría estar en transición a un nuevo estado. En ese caso, el método se bloquea hasta que se complete la transición o hasta que transcurra el tiempo de espera especificado.
Syntax
HRESULT GetState(
[in] LONG msTimeout,
[out] OAFilterState *pfs
);
Parámetros
[in] msTimeout
Duración del tiempo de espera, en milisegundos, o INFINITE para especificar un tiempo de espera infinito.
[out] pfs
Recibe un miembro de la enumeración FILTER_STATE .
Valor devuelto
Devuelve un valor HRESULT . Entre los valores posibles se incluyen los siguientes.
| Código de retorno | Description |
|---|---|
|
Éxito. |
|
El gráfico de filtros todavía está en transición al estado indicado. |
|
El gráfico de filtros está en pausa, pero no puede indicar los datos. |
|
Fracaso. |
Observaciones
Las aplicaciones pueden usar este método para determinar si la reproducción se ha iniciado después de una llamada a IMediaControl::Run. Por lo general, las aplicaciones deben tener su propio mecanismo para realizar el seguimiento del estado en el que han colocado el gráfico de filtro. Las aplicaciones suelen usar el estado actual para determinar qué controles de interfaz de usuario están habilitados o deshabilitados. Por ejemplo, una vez que el gráfico entra en estado de ejecución, la aplicación podría deshabilitar un botón "Reproducir" y habilitar los botones "Detener" y "Pausar".
Si el gráfico de filtros está en una transición a un nuevo estado, el estado devuelto es el nuevo, no el estado anterior.
Este método devuelve un error si hay una llamada en otro subproceso para cambiar el estado mientras este método está bloqueado.
Evite especificar un tiempo de espera de INFINITE, ya que los subprocesos no pueden procesar mensajes mientras esperan en GetState. Si llama desde el subproceso GetState que procesa mensajes de Windows, especifique tiempos de espera pequeños en la llamada para mantener la capacidad de respuesta a la entrada del usuario. Esto es especialmente importante cuando el origen se transmite a través de una red o desde Internet porque las transiciones de estado en estos entornos pueden tardar mucho más tiempo en completarse.
Enumeración FILTER_STATE . Puede convertir la variable de la siguiente manera:
FILTER_STATE fs;
hr = pControl->GetState(msTimeOut, (OAFilterState*)&fs);
Para obtener más información sobre los estados del gráfico de filtro, vea Estados de filtro.
Requisitos
| Requirement | Importancia |
|---|---|
| Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
| Servidor mínimo admitido | Windows 2000 Server [solo aplicaciones de escritorio] |
| de la plataforma de destino de |
Windows |
| Header | control.h (include Dshow.h) |
| Library | Strmiids.lib |