Udostępnij przez


Ładowanie pliku projektu

[Funkcja skojarzona z tą stroną, DirectShow, jest starszą funkcją. Został zastąpiony przez MediaPlayer, IMFMediaEnginei Audio/Video Capture w Media Foundation. Te funkcje zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer, IMFMediaEngine i Audio/Video Capture w programie Media Foundation zamiast DirectShow, jeśli 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.]

[Ten interfejs API nie jest obsługiwany i może zostać zmieniony lub niedostępny w przyszłości.]

Aby załadować plik projektu, potrzebne są dwa składniki: analizator XML i pusta oś czasu. Analizator XML odczytuje plik projektu XML i tworzy każdy obiekt zdefiniowany w pliku. Następnie wstawia obiekty do osi czasu i ustawia wszystkie atrybuty osi czasu, takie jak domyślna szybkość klatek. Poniższy przykład kodu ładuje plik.

HRESULT         hr;
IAMTimeline     *pTL = NULL;
IXml2Dex        *pXML = NULL; 
hr = CoCreateInstance(CLSID_AMTimeline, NULL, CLSCTX_INPROC_SERVER, 
            IID_IAMTimeline, (void**)&pTL);
hr = CoCreateInstance(CLSID_Xml2Dex, NULL, CLSCTX_INPROC_SERVER, 
            IID_IXml2Dex, (void**)&pXML);
BSTR bstrFile = SysAllocStringLen(OLESTR("C:\\example.xtl"), 15);
hr = pXML->ReadXMLFile(pTL, bstrFile); 
SysFreeString(bstrFile);
pXML->Release();

Analizator uwidacznia interfejs IXml2Dex, który zawiera metody ładowania i zapisywania plików projektu. Oś czasu uwidacznia interfejs IAMTimeline, który zawiera metody manipulowania osią czasu i tworzenia nowych obiektów osi czasu. Wywołaj funkcję CoCreateInstance, aby utworzyć każdy składnik, jak pokazano poniżej. Pamiętaj, że tworząc nowe wystąpienie, zwiększasz licznik referencji w interfejsie. Aby uniknąć przecieków pamięci, zawsze zwalniaj interfejs po jego użyciu. W tym przykładzie wskaźnik do IXml2Dex nie jest już do niczego potrzebny, więc można zwolnić ten interfejs. Wskaźnik IAMTimeline jest nadal potrzebny do podglądu osi czasu.

Metoda IXml2Dex::ReadXMLFile odczytuje określony plik i wypełnia oś czasu obiektami zdefiniowanymi w pliku. Nazwa pliku jest określana przy użyciu wartości BSTR. Aby skrócić przykład, nazwa pliku w przykładzie jest podawana jako dosłowny ciąg znaków. Zwykle uzyskuje się go z okna dialogowego Otwieranie pliku lub podobne.

Jeśli metoda ReadXML powiedzie się, zwraca kod powodzenia. W przeciwnym razie zwraca kod błędu, taki jak VFW_E_INVALID_FILE_FORMAT. Zawsze sprawdzaj wartość zwracaną, aby sprawnie obsługiwać sytuacje błędów. Ponownie, aby uzyskać zwięzłość, przykładowy kod nie sprawdza błędów.

Ładowanie i wyświetlanie podglądu projektu