Udostępnij przez


Gra na urządzeniu

[Funkcja skojarzona z tą stroną, MCI, jest starszą funkcją. Został zastąpiony przez MediaPlayer. MediaPlayer został zoptymalizowany pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer zamiast MCI, jeśli jest to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Polecenie play (MCI_PLAY) rozpoczyna odtwarzanie urządzenia. Bez żadnych flag to polecenie rozpoczyna odtwarzanie od bieżącej pozycji i kontynuuje, dopóki nie zostanie przerwane lub dopóki nie zostanie osiągnięty koniec nośnika lub pliku. Po odtwarzaniu bieżąca pozycja znajduje się na końcu nośnika. Możesz również użyć polecenia wyszukiwania (MCI_SEEK), aby zmienić bieżące położenie.

Większość urządzeń obsługujących polecenie play obsługuje również flagi „from” (MCI_FROM) i „to” (MCI_TO). Te flagi wskazują położenie, w którym urządzenie powinno się uruchamiać i zatrzymywać odtwarzanie. Na przykład następujące polecenie odtwarza dysk audio CD od początku pierwszego utworu przy użyciu funkcji mciSendString:

mciSendString("play cdaudio from 0", lpszReturnString, 
    lstrlen(lpszReturnString), NULL);

Niektóre typy urządzeń rozszerzają to polecenie, aby wykorzystać możliwości określonego urządzenia. Na przykład polecenie odtwarzania dla typu urządzenia wideodysk zawiera flagi "fast" (MCI_VD_PLAY_FAST), "slow" (MCI_VD_PLAY_SLOW) i "scan" (MCI_VD_PLAY_SCAN).

Notatka

Jednostki przypisane do wartości pozycji zależą od formatu czasu używanego przez urządzenie. Każde urządzenie ma domyślny format czasu, ale najpierw należy określić format czasu przy użyciu polecenia (MCI_SET) zanim użyje się poleceń, które korzystają z wartości pozycji.

 

Odtwarzanie pliku AVI

Pliki wideo w systemie Windows składają się z co najmniej dwóch przeplatanych strumieni danych: strumienia wideo (pictorial) i strumienia audio. Te pliki audio-wideo przeplatane (AVI) można łatwo odtworzyć za pomocą poleceń MCI. W poniższych sekcjach omówiono odtwarzanie plików AVI.

Konfigurowanie okna odtwarzania MCIAVI

Aplikacja może określić następujące opcje, aby zdefiniować okno odtwarzania do odtwarzania pliku AVI:

  • Użyj domyślnego okna podręcznego sterownika MCIAVI.
  • Określ styl okna nadrzędnego i okna, którego sterownik MCIAVI może użyć do utworzenia okna odtwarzania.
  • Określ okno odtwarzania sterownika MCIAVI, które ma być używane do odtwarzania.
  • Odtwórz plik AVI na ekranie pełnoekranowym.

Jeśli aplikacja nie określi żadnych opcji okna, sterownik MCIAVI utworzy domyślne okno do odtwarzania sekwencji. Sterownik tworzy to okno odtwarzania dla otworzyć (MCI_OPEN) polecenie, ale nie wyświetla okna, dopóki aplikacja nie wyśle polecenia, aby wyświetlić okno lub odtworzyć plik. To domyślne okno odtwarzania to wyskakujące okno z ramką zmieniającą rozmiar, paskiem tytułu, grubą ramką, okna menu i przyciskiem minimalizuj.

Aplikacja może również określić uchwyt okna nadrzędnego i styl okna podczas wydawania polecenia otwórz. W takim przypadku sterownik MCIAVI tworzy okno na podstawie tych parametrów zamiast domyślnego okna wyskakującego. Aplikacja może określić dowolny styl okna dostępny dla funkcji CreateWindow. Style wymagające okna nadrzędnego, takie jak WS_CHILD, powinny zawierać uchwyt okna nadrzędnego.

Aplikacja może również utworzyć własne okno i podać uchwyt do sterownika MCIAVI przy użyciu polecenia okna (MCI_WINDOW). Sterownik MCIAVI używa tego okna zamiast tworzyć własne.

Gdy sterownik MCIAVI tworzy okno odtwarzania lub uzyskuje uchwyt okna od aplikacji, nie wyświetla okna, dopóki aplikacja nie odtworzy sekwencji lub nie wyśle polecenia, aby wyświetlić okno. Aplikacja może użyć polecenia okna , aby wyświetlić okno bez odtwarzania sekwencji. Na przykład następujące polecenie wyświetla okno przy użyciu mciSendString:

mciSendString("window movie state show", lpszReturnString,
    lstrlen(lpszReturnString), NULL);

W tym przykładzie "film" to alias urządzenia cyfrowego wideo.

Aplikacja może również odtworzyć plik AVI w trybie pełnoekranowym. Aby odtwarzać w trybie pełnoekranowym, zmodyfikuj polecenia (MCI_PLAY) za pomocą flagi "fullscreen" (MCI_MCIAVI_PLAY_FULLSCREEN). Gdy aplikacja używa tej flagi, sterownik MCIAVI używa formatu pełnoekranowego 320 do 240 pikseli do odtwarzania sekwencji. Na przykład następujące polecenie odtwarza otwarty plik na pełnym ekranie (przy użyciu "filmu" jako aliasu):

mciSendString("play movie fullscreen", lpszReturnString,
    lstrlen(lpszReturnString), NULL);

Zmienianie stanu odtwarzania dla pliku AVI

Aplikacja może użyć polecenia wyszukiwania (MCI_SEEK), aby przenieść bieżące położenie na początek, koniec lub dowolne położenie w pliku AVI. Istnieją dwa tryby wyszukiwania dla sterownika MCIAVI: dokładny i niedokładny. Aplikacja może zmienić tryb wyszukiwania przy użyciu polecenia set (MCI_SET). Jeśli używasz ustawić "szukać dokładnie na", sterownik MCIAVI szuka dokładnie ramki określonej przez aplikację. Może to spowodować opóźnienie, jeśli plik jest skompresowany czasowo, a aplikacja nie określa ramki klucza. Jeśli używasz , aby ustawić "dokładne wyszukiwanie wyłączone", sterownik MCIAVI szuka najbliższej klatki kluczowej w skompresowanym czasowo pliku.

Niektóre polecenia MCI umożliwiają aplikacji zmianę odtwarzania pliku AVI na inne sposoby. Na przykład plik AVI jest domyślnie odtwarzany z normalną szybkością, ale aplikacja może zwiększać lub zmniejszać tę szybkość, używając flagi „speed” z poleceniem ustawionym na. W przypadku plików AVI typowa jest wartość szybkości 1000. W związku z tym, aby odtworzyć film z połowę swojej typowej prędkości, aplikacja może użyć polecenia ustawić "prędkość filmu 500"; alternatywnie, może użyć ustawić "prędkość filmu 2000", aby zagrać sekwencję z dwukrotnie większą prędkością.

Polecenie setaudio (MCI_SETAUDIO) umożliwia aplikacji kontrolowanie części audio pliku AVI. Aplikacja może wyciszyć dźwięk podczas odtwarzania lub w przypadku wielu plików strumienia audio wybierz strumień audio, który jest odtwarzany.

Sterownik MCIAVI ma okno dialogowe do kontrolowania niektórych opcji odtwarzania. Niektóre opcje dostępne dla użytkownika obejmują wybieranie odtwarzania zorientowanego na okno lub pełnoekranowe, wybieranie trybu wyszukiwania i powiększanie obrazu. Aplikacja może wyświetlać to okno dialogowe za pomocą skonfigurować (MCI_CONFIGURE) polecenia.

Obsługiwacze strumieni

Dane w pliku AVI są traktowane jako seria strumieni. Plik AVI zwykle zawiera strumień audio i wideo, a także strumień niestandardowy, który zawiera tekst lub inne dane niestandardowe. Sterownik MCIAVI może używać różnych procedur obsługi dla tych strumieni danych. Aby uzyskać więcej informacji na temat niestandardowych plików AVI, zobacz pliki niestandardowe i programy obsługi strumienia.