Udostępnij przez


Jak kontrolować stany prezentacji

Sesja multimediów zapewnia kontrolę transportu, taką jak zmienianie stanów prezentacji (odtwarzanie, wstrzymywanie i zatrzymywanie w scenariuszu odtwarzania w stylu listy odtwarzania). W tym temacie opisano metody sesji multimediów, które aplikacja powinna wywołać w celu zmiany stanu odtwarzania.

W poniższej tabeli przedstawiono prawidłowe przejścia stanu prezentacji.

Przejście między stanami Opis
Odtwarzanie — wstrzymanie> Zegar prezentacji zawiesza się.
Odtwarzanie — zatrzymanie> Zegar prezentacji jest resetowany.
Wstrzymywanie —> odtwarzania Zegar prezentacji wznawia od momentu, w którym się zatrzymał podczas przejścia z trybu odtwarzania do pauzy.
Wstrzymaj -> Zatrzymaj Zegar prezentacji jest resetowany.
Stop -> Odtwórz Zegar prezentacji rozpoczyna się od początku prezentacji.
Stop -> Pauza Niedozwolone.

 

Aby zmienić stany prezentacji

  • Wywołaj metodę IMFMediaSession::Pause, aby wstrzymać odtwarzanie.

    hr = pMediaSession->Pause();
    

    Przed wywołaniem tej metody aplikacja musi wywołać metodę IMFMediaSession::GetSessionCapabilities metodę, aby dowiedzieć się, czy źródło multimediów obsługuje stan Wstrzymanie. Jeśli tak, ta metoda zwraca MFSESSIONCAP_PAUSE w parametrze pdwCaps.

    Pauza tymczasowo zatrzymuje sesję multimedialną, zegar prezentacji i odbiornik strumienia dla bieżącej prezentacji. Po pomyślnym zakończeniu połączenia aplikacja otrzymuje zdarzenie MESessionPaused.

  • Wywołaj metodę IMFMediaSession::Stop, aby zatrzymać odtwarzanie.

    hr = pMediaSession->Stop();
    

    Ta metoda zatrzymuje sesję multimediów, zatrzymując źródło multimediów, odpowiednie zegary i ujścia strumienia. Jeśli sesja multimedialna kontroluje źródło Sequencer, bazowe źródła natywne są zatrzymywane przez źródło Sequencer. Po zatrzymaniu sesji multimediów aplikacja otrzymuje zdarzenie MESessionStopped.

  • Wywołaj metodę IMFMediaSession::Start, aby rozpocząć odtwarzanie lub wyszukać nową pozycję.

    hr = pMediaSession->Start(NULL, &var);
    

    Ta metoda uruchamia sesję multimediów ze stanów wstrzymania i zatrzymania. Sesja multimedialna jest odpowiedzialna za skonfigurowanie przepływu danych w kanale. Ta metoda instruuje sesję multimediów, aby uruchomić zegar prezentacji. Po tym wywołaniu sesja multimediów wysyła do aplikacji zdarzenie MESessionStarted.

sesji multimediów