Share via


Uso di origini multimediali con la sessione multimediale

Se usi la sessione multimediale per controllare la riproduzione, il set di metodi che devi chiamare su un'origine multimediale è limitato. Questa sezione descrive come usare l'origine multimediale insieme alla sessione multimediale.

Ecco i passaggi di base che verranno eseguiti dall'applicazione:

  1. Creare l'origine multimediale. Per creare un'origine multimediale, usare il resolver di origine. Per altre informazioni, vedere Resolver di origine. Il resolver di origine restituisce un puntatore all'interfaccia IMFMediaSource dell'origine. Se è stata scritta un'origine multimediale personalizzata, è possibile fornire invece un metodo di creazione personalizzato.

  2. Configurare la presentazione. Per configurare la presentazione dell'origine, chiamare IMFMediaSource::CreatePresentationDescriptor. È possibile modificare questa copia, ma le modifiche non diventano attive fino all'avvio della riproduzione. Non modificare il descrittore di presentazione durante la riproduzione. Per altre informazioni, vedere Descrittori di presentazione.

  3. Creare una topologia contenente l'origine multimediale. Per altre informazioni, vedere Topologie.

  4. Usare la sessione multimediale per controllare la riproduzione. La sessione multimediale chiama i metodi nell'origine multimediale. L'applicazione non deve chiamare metodi nell'origine multimediale in questo momento.

  5. Prima di rilasciare l'origine multimediale, chiamare IMFMediaSource::Shutdown per arrestare l'origine.

    Nota

    Se si usa l'origine sequencer, l'origine sequencer gestisce l'arresto delle origini dei segmenti. Per altre informazioni, vedere Origine Sequencer.

     

Se si usa la sessione multimediale, gli unici metodi che è necessario chiamare sull'origine multimediale sono CreatePresentationDescriptor, GetCharacteristics e Shutdown. In particolare:

  • Non chiamare Start, Pause o Stop; questi metodi devono essere chiamati solo dalla sessione multimediale.

  • Non chiamare metodi IMFMediaStream .

  • Non recuperare gli eventi direttamente dall'origine multimediale o da uno dei flussi. Per il corretto funzionamento della pipeline, è necessario che la sessione multimediale riceva questi eventi. La sessione multimediale inoltra tutti gli eventi necessari per l'applicazione.

Sessione multimediale