Condividi tramite


Per usare la selezione manuale del flusso

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita dal lettore di origine e dal 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.

Quando si recapitano campioni non compressi con l'oggetto reader, è possibile recapitarli solo in base al numero di output. Nel caso di flussi che si escludono a vicenda, ciò significa che è possibile ricevere campioni solo da un flusso nell'esclusione reciproca alla volta. Il processo di scelta del flusso che si escludono a vicenda è denominato selezione del flusso.

Per l'esclusione reciproca della velocità in bit, il lettore effettua automaticamente selezioni di flusso in base alle condizioni del computer host in fase di riproduzione. Per altri tipi di esclusione reciproca, il lettore fornirà campioni dal flusso predefinito, a meno che non si selezioni manualmente un flusso diverso. Possono essere presenti anche istanze quando si vuole selezionare manualmente un flusso da un'esclusione reciproca della velocità in bit.

La selezione manuale del flusso è attivata o disattivata per l'intero file. Se un file contiene l'esclusione reciproca a velocità in bit e un altro tipo di esclusione reciproca, è necessario selezionare manualmente i flussi basati sulla velocità in bit.

Per selezionare manualmente un flusso che si escludono a vicenda, è necessario eseguire la procedura seguente.

  1. Recuperare un puntatore all'interfaccia IWMReaderAdvanced dell'oggetto reader chiamando IWMReader::QueryInterface.
  2. Abilitare la selezione manuale del flusso chiamando IWMReaderAdvanced::SetManualStreamSelection.
  3. Per scoprire se è selezionato un flusso specifico, chiama IWMReaderAdvanced::GetStreamSelected. È necessario passare un puntatore a una variabile del tipo di enumerazione WMT_STREAM_SELECTION . Al termine della chiamata, il valore nella variabile descriverà il tipo di selezione corrente del flusso.
  4. Per selezionare un flusso, chiama IWMReaderAdvanced::SetStreamsSelected. Questo metodo consente di specificare più flussi contemporaneamente per il cambio di flusso sincronizzato.

Lettura di file con il lettore asincrono