ASF Web Stream-uppspelning i DirectShow
[Funktionen som är associerad med den här sidan, DirectShow, är en äldre funktion. Det har ersatts av MediaPlayer, IMFMediaEngineoch Audio / Video Capture i Media Foundation. Dessa funktioner har optimerats för Windows 10 och Windows 11. Microsoft rekommenderar starkt att ny kod använder MediaPlayer, IMFMediaEngine och Audio/Video Capture i Media Foundation i stället för DirectShow, när det är möjligt. Microsoft föreslår att befintlig kod som använder äldre API:er skrivs om för att använda de nya API:erna om möjligt.]
Microsoft DirectShow stöder webbströmmar i filuppspelningsscenarier via WM ASF Reader- filter, men du måste skriva ett eget DirectShow-filter för att samla in och spara strömmen.
Not
Om du vill spela upp webbströmmar i innehåll som strömmas från en server som kör Windows Media Services använder du Windows Media Player 9-seriens ActiveX-kontroll® inbäddad på en webbsida.
När du får en fil som innehåller strömmar av typen WMMEDIATYPE_FileTransfer skapar WM ASF-läsaren en utdatastift för den. Formatblocket är en WMT_WEBSTREAM_FORMAT struktur. (Den här strukturen dokumenteras i Windows Media Format SDK-dokumentationen.) Om det inte finns något underordnat filter som kan hantera den medietypen förblir pin-koden inte ansluten, men filen spelar fortfarande upp ljud- och/eller videoströmmarna.
Varje medieexempel i en webbström innehåller en WMT_WEBSTREAM_SAMPLE_HEADER struktur, som dokumenteras i SDK-dokumentationen för Windows Media Format. Strukturen har en variabel längd beroende på längden på dess wszURL medlem. Pekaren till exempeldata pekar initialt på den här strukturen och du måste föra pekaren förbi strukturen för att få åtkomst till faktiska data i dataströmmen.
Filtret för webbströmhanteraren bör baseras på klassen CBaseRenderer. I metoden CBaseRenderer::D oRenderSample måste filtret parsa strukturen för information om webbströmmen och sedan utföra lämplig åtgärd. Detta innebär vanligtvis att du sparar filen på disken och sedan anropar CreateUrlCacheEntry och CommitUrlCacheEntryW eller CommitUrlCacheEntryA funktioner för att placera filerna i Internet Explorer-cachen. Filtret måste hantera flerdelsfiler, d.v.s. filer som är större än ett exempel, och måste även hantera återgivningskommandon som anges av WMT_WEBSTREAM_SAMPLE_HEADER.wSampleType- medlem. Filtret skickar en EC_OLE_EVENT händelse till programmet, tillsammans med texten i strängen WMT_WEBSTREAM_SAMPLE_HEADER.wszURL som innehåller namnet på filen som ska återges. Programmet gör sedan att webbläsaren visar den angivna sidan. Om webbströmmen har skapats korrekt bör filen redan finnas i cacheminnet.
Mer information om WMT_WEBSTREAM_FORMAT och WMT_WEBSTREAM_SAMPLE_HEADER finns i dokumentationen om Windows Media Format SDK.
Relaterade ämnen