Compartir a través de


Uso de receptores de archivos

[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, simplemente puede pasar el escritor un nombre de archivo de salida mediante el método IWMWriter::SetOutputFilename y el objeto writer escribirá el archivo en el disco automáticamente. En este caso, el escritor está creando y controlando realmente un objeto receptor de archivos de escritor que controla la escritura del archivo en el disco. Un objeto receptor de archivos de escritor controla el flujo de datos del objeto writer a un único archivo.

Puede crear sus propios receptores de archivos para obtener más control sobre cómo el receptor escribe el archivo. También puede acceder al receptor de archivos de escritor predeterminado creado por el escritor en respuesta a una llamada a SetOutputFilename.

Creación de receptores de archivos

Para crear un receptor de archivos y agregarlo al escritor, realice los pasos siguientes.

  1. Cree un nuevo receptor llamando a la función WMCreateWriterFileSink .
  2. Proporcione un nombre de archivo para el receptor llamando a IWMWriterFileSink::Open.
  3. Agregue el receptor de archivos al escritor llamando a IWMWriterAdvanced::AddSink.
  4. Realice la escritura de la manera habitual.
  5. Una vez completada la escritura, el receptor cerrará el archivo automáticamente.

Detener e iniciar receptores de archivos

Después de comenzar las operaciones de escritura, puede dejar de escribir en un receptor de archivos llamando a IWMWriterFileSink2::Stop.

Hay muchas razones posibles por las que desea dejar de escribir en un receptor. Por ejemplo, si está grabando desde un origen en directo, es posible que solo le interese parte del contenido.

Puede reanudar la escritura en un receptor de archivos llamando a IWMWriterFileSink2::Start. Tanto Stop como Start usan tiempos de presentación para controlar aproximadamente cuando se ejecuta el comando. Puede usar los métodos IWMWriterFileSink3 para obtener más control sobre las horas de inicio y detención.

Cerrar receptores de archivos

Normalmente, un receptor de archivos se cierra automáticamente. Si ha terminado de escribir en un receptor, pero las operaciones de escritura en otros receptores continúan, debe cerrar explícitamente el receptor para conservar los recursos. Para cerrar un receptor de archivos, llame a IWMWriterFileSink2::Close.

Obtención de estadísticas de receptor

Puede obtener el tamaño y la duración del archivo para un receptor abierto llamando a IWMWriterFileSink2::GetFileSize e IWMWriterFileSink2::GetFileDuration respectivamente.

IWMWriterFileSink (Interfaz)

IWMWriterFileSink2 (Interfaz)

IWMWriterFileSink3 (Interfaz)

Objeto receptor de archivos de Writer

Escribir archivos ASF