Compartir a través de


Compatibilidad de ejemplo asignada por el usuario

[La característica asociada a esta página, SDK de Windows Media Format 11, es una característica heredada. Se ha reemplazado por lector de origen y escritor receptor. El lector de origen y el sistema de escritura receptor se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use lector de origen y escritor receptor en lugar del SDK de Windows Media Format 11, 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.

En circunstancias normales, tanto el objeto lector como el objeto de lector sincrónico crean un nuevo objeto de búfer para cada ejemplo entregado a la aplicación. Esto se debe a que el objeto de lectura no tiene forma de saber qué hace la aplicación con los ejemplos después de obtenerlos. Aunque muchas aplicaciones solo leen ejemplos para representarlas inmediatamente, es posible que algunas aplicaciones necesiten mantener ejemplos durante mucho tiempo. Por lo tanto, el objeto de lectura no puede reutilizar ninguno de los búferes que asigna; los entrega a la aplicación, que luego tiene control sobre ellos.

El problema con este enfoque es que un archivo puede contener un gran número de muestras. Si cada uno de ellos requiere que se cree un nuevo objeto de búfer, se desperdicia mucho tiempo de procesador y se libera memoria. En aplicaciones sensibles al tiempo, como reproductores multimedia, esta sobrecarga puede ser muy perjudicial para el rendimiento.

Para aliviar los problemas de rendimiento de los ejemplos asignados por el lector, tanto el lector como el lector sincrónico admiten ejemplos asignados por el usuario. Para usar ejemplos asignados por la aplicación, el objeto de lectura realiza llamadas a un método de devolución de llamada de asignación de ejemplo que implemente. La lógica usada por la devolución de llamada para entregar búferes al objeto de lectura es totalmente para usted. Puede usar un grupo de búferes para todo el archivo o usar varios grupos de búferes, uno para cada salida o secuencia, o cualquier otro esquema que funcione para la aplicación.

Asignar búferes para la lectura de archivos

Características de lectura de archivos