Uso di file sink
[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita da Lettore di origine e Writer sink. Lettore di origine e Writer sink sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi Lettore di origine e Writer sink anziché Windows Media Format 11 SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
In circostanze normali, è sufficiente passare il nome di un file di output usando il metodo IWMWriter::SetOutputFilename e l'oggetto writer scriverà automaticamente il file su disco. In questo caso, il writer sta effettivamente creando e controllando un oggetto sink di file writer che gestisce la scrittura del file su disco. Un oggetto sink di file writer controlla il flusso di dati dall'oggetto writer a un singolo file.
È possibile creare sink di file personalizzati per ottenere un maggiore controllo sul modo in cui il sink scrive il file. È anche possibile accedere al sink di file writer predefinito creato dal writer in risposta a una chiamata a SetOutputFilename.
Creazione di sink di file
Per creare un sink di file e aggiungerlo al writer, seguire questa procedura.
- Creare un nuovo sink chiamando la funzione WMCreateWriterFileSink .
- Specificare un nome di file per il sink chiamando IWMWriterFileSink::Open.
- Aggiungere il sink di file al writer chiamando IWMWriterAdvanced::AddSink.
- Eseguire la scrittura nel modo consueto.
- Dopo aver completato la scrittura, il sink chiuderà automaticamente il file.
Arresto e avvio dei sink di file
Dopo aver iniziato le operazioni di scrittura, è possibile interrompere la scrittura in un sink di file chiamando IWMWriterFileSink2::Stop.
Ci sono molti potenziali motivi per cui si vuole interrompere la scrittura in un sink. Ad esempio, se si sta registrando da un'origine live, è possibile che si sia interessati solo ad alcuni dei contenuti.
È possibile riprendere la scrittura in un sink di file chiamando IWMWriterFileSink2::Start. Sia Stop che Start usano i tempi di presentazione per controllare approssimativamente quando viene eseguito il comando. È possibile usare i metodi IWMWriterFileSink3 per ottenere un maggiore controllo sui tempi di avvio e arresto.
Chiusura dei sink di file
In genere, un sink di file viene chiuso automaticamente. Se si sta scrivendo in un sink, ma le operazioni di scrittura in altri sink continuano, è consigliabile chiudere in modo esplicito il sink per risparmiare risorse. Per chiudere un sink di file, chiamare IWMWriterFileSink2::Close.
Recupero delle statistiche del sink
È possibile ottenere le dimensioni e la durata del file per un sink aperto chiamando rispettivamente IWMWriterFileSink2::GetFileSize e IWMWriterFileSink2::GetFileDuration.
Argomenti correlati