Eventos
19 nov, 23 - 21 nov, 23
Obtenga la ventaja competitiva que necesita con soluciones eficaces de inteligencia artificial y nube al asistir a Microsoft Ignite online.
Regístrese ahoraEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
El método GetDevicePeriod recupera la longitud del intervalo periódico que separa los pasos de procesamiento sucesivos por el motor de audio en los datos del búfer del punto de conexión.
HRESULT GetDevicePeriod(
[out] REFERENCE_TIME *phnsDefaultDevicePeriod,
[out] REFERENCE_TIME *phnsMinimumDevicePeriod
);
[out] phnsDefaultDevicePeriod
Puntero a una variable de REFERENCE_TIME en la que el método escribe un valor de tiempo que especifica el intervalo predeterminado entre los pasos de procesamiento periódicos por parte del motor de audio. El tiempo se expresa en unidades de 100 nanosegundos. Para obtener información sobre REFERENCE_TIME, consulte la documentación de Windows SDK.
[out] phnsMinimumDevicePeriod
Puntero a una variable de REFERENCE_TIME en la que el método escribe un valor de tiempo que especifica el intervalo mínimo entre los pasos de procesamiento periódicos por el dispositivo de punto de conexión de audio. El tiempo se expresa en unidades de 100 nanosegundos.
Si el método se realiza correctamente, devuelve S_OK. Si se produce un error, los posibles códigos de retorno incluyen, pero no están limitados a, los valores que se muestran en la tabla siguiente.
Código devuelto | Descripción |
---|---|
|
El dispositivo de punto de conexión de audio se ha desconectado o el hardware de audio o los recursos de hardware asociados se han reconfigurado, deshabilitado, quitado o no están disponibles para su uso. |
|
El servicio de audio de Windows no se está ejecutando. |
|
Los parámetros phnsDefaultDevicePeriod y phnsMinimumDevicePeriod son NULL. |
El cliente puede llamar a este método antes de llamar al método IAudioClient::Initialize .
El parámetro phnsDefaultDevicePeriod especifica el período de programación predeterminado para una secuencia en modo compartido. El parámetro phnsMinimumDevicePeriod especifica el período de programación mínimo para una secuencia en modo exclusivo.
Al menos uno de los dos parámetros, phnsDefaultDevicePeriod y phnsMinimumDevicePeriod, debe ser distinto de NULL o el método devuelve inmediatamente con código de error E_POINTER. Si ambos parámetros no son NULL, el método genera los períodos predeterminados y mínimos.
Para una secuencia en modo compartido, el motor de audio procesa periódicamente los datos en el búfer del punto de conexión, que el motor comparte con la aplicación cliente. El motor se programa para realizar estos pasos de procesamiento a intervalos regulares.
El período entre los pasos de procesamiento por parte del motor de audio se fija para un dispositivo de punto de conexión de audio determinado y representa el cuanto de procesamiento más pequeño para el motor de audio. Este período más la latencia de secuencia entre el búfer y el dispositivo de punto de conexión representa la latencia mínima posible que puede lograr una aplicación de audio.
El cliente tiene la opción de programar su subproceso de procesamiento periódico para que se ejecute al mismo tiempo que el motor de audio. De este modo, el cliente puede lograr la menor latencia posible para una secuencia en modo compartido. Sin embargo, en una aplicación para la que la latencia es menos importante, el cliente puede reducir la sobrecarga de conmutación de procesos en la CPU mediante la programación de sus pases de procesamiento para que se produzcan con menos frecuencia. En este caso, el búfer del punto de conexión debe ser proporcionalmente mayor para compensar el período más largo entre los pasos de procesamiento.
El cliente determina el tamaño del búfer durante su llamada al método IAudioClient::Initialize . Para una secuencia en modo compartido, si el cliente pasa este método un valor de parámetro hnsBufferDuration de 0, el método supone que los períodos del cliente y el motor de audio tienen la garantía de ser iguales y el método asignará un búfer lo suficientemente pequeño como para lograr la latencia mínima posible. (De hecho, cualquier valor hnsBufferDuration entre 0 y la suma del período del motor de audio y la latencia del dispositivo tendrán el mismo resultado). Del mismo modo, para una secuencia en modo exclusivo, si el cliente establece hnsBufferDuration en 0, el método supone que el período del cliente se establece en el período mínimo del dispositivo de punto de conexión de audio y el método asignará un búfer lo suficientemente pequeño como para lograr la latencia mínima posible.
Si el cliente decide ejecutar su subproceso de procesamiento periódico con menos frecuencia, a costa de aumentar la latencia, puede hacerlo siempre y cuando cree un búfer de punto de conexión durante la llamada IAudioClient::Initialize suficientemente grande.
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | audioclient.h |
Eventos
19 nov, 23 - 21 nov, 23
Obtenga la ventaja competitiva que necesita con soluciones eficaces de inteligencia artificial y nube al asistir a Microsoft Ignite online.
Regístrese ahora