Webstreamwiedergabe in DirectShow

Microsoft DirectShow unterstützt Webstreams (siehe Web Streams für weitere Informationen) in Dateiwiedergabeszenarien über den WM ASF Reader-Filter, aber Sie müssen ihren eigenen DirectShow-Filter schreiben, um den Datenstrom zu erfassen und beizubehalten.

Hinweis

Verwenden Sie zum Wiedergeben von Webstreams in Inhalten, die von einem Server mit Windows Media Services ausgeführt werden, das Windows Medienwiedergabe 9 Series ® ActiveX Steuerelement in eine Webseite eingebettet ist.

 

Wenn eine Datei mit Datenströme vom Typ WMMEDIATYPE_FileTransfer enthält, erstellt der WM ASF Reader eine Ausgabehefte dafür. Der Formatblock ist eine WMT_WEBSTREAM_FORMAT Struktur. Wenn kein nachgelagerter Filter verfügbar ist, der diesen Medientyp verarbeiten kann, bleibt die Pin nicht verbunden, aber die Datei wird weiterhin audio- und/oder videostreams wiedergegeben.

Es ist wichtig zu verstehen, dass jedes Medienbeispiel in einem Webstream eine WMT_WEBSTREAM_SAMPLE_HEADER Struktur enthält, die je nach Länge des wszURL-Elements eine Variable Länge aufweist. Der Zeiger auf die Beispieldaten zeigt zunächst auf diese Struktur, und Sie müssen den Zeiger über die Struktur hinausstellen, um auf die tatsächlichen Daten im Datenstrom zuzugreifen. Der Webstreamhandlerfilter sollte auf der CBaseRenderer-Klasse basieren. In der DoRenderSample-Methode muss der Filter die Struktur für Informationen zum Webstream analysieren und dann die entsprechende Aktion ausführen. Dies umfasst in der Regel das Speichern der Datei auf dem Datenträger und dann das Aufrufen von CommitUrlCacheEntry und CreateUrlCacheEntry , um die Dateien im Internet Explorer-Cache zu platzieren. Der Filter muss mehrteilige Dateien behandeln, die größer als ein Beispiel sind und auch Renderbefehle behandeln müssen, die vom WMT_WEBSTREAM_SAMPLE_HEADER.wSampleType-Element angegeben werden. Der Filter sendet eine EC_OLE_EVENT an die Anwendung, zusammen mit dem Text der WMT_WEBSTREAM_SAMPLE_HEADER.wszURL-Zeichenfolge , die den Namen der zu renderden Datei enthält. Die Anwendung führt dann dazu, dass der Browser die angegebene Seite anzeigt. Wenn der Webstream ordnungsgemäß erstellt wurde, sollte sich die Datei bereits im Cache befinden.

Weitere Informationen zu CBaseRenderer, DoRenderSample und EC_OLE_EVENT finden Sie in der DirectShow SDK-Dokumentation.

Web-Streams