Protokollieren von Datenströmen
Protokollierte Informationen können abgerufen und verwendet werden, um das Verhalten des Viewers zu bestimmen, z. B. wie oft ein Stream angezeigt wird oder ob ein bestimmter Benutzer einen Stream angezeigt hat und wie lange in welcher Qualität.
Protokollierungsinformationen werden automatisch an den Server gesendet, von dem die Wiedergabeliste stammt. Sie können Protokollierungsinformationen auch an zusätzliche Server senden, einschließlich Webserver, die Sie ausschließlich für die Protokollierung verwenden. Verwenden Sie hierzu das LOGURL-Element, und geben Sie eine gültige URL für das HREF-Attribut an. Sie können LOGURL-Elemente als untergeordnete Elemente des ASX-Elements und als untergeordnete Elemente einzelner ENTRY-Elemente einschließen. Wenn die Wiedergabeliste zum ersten Mal geöffnet wird, werden Protokollierungsinformationen an den Ursprungsserver und an jede URL gesendet, die in den untergeordneten LOGURL-Elementen des ASX-Elements angegeben ist. Wenn dann jeder Eintrag erreicht wird, werden Protokollierungsinformationen, die für diesen Eintrag spezifisch sind, an jede URL gesendet, die in logurl untergeordneten Elementen des ENTRY-Elements angegeben ist.
Das Windows Media Format SDK unterstützt das LOGURL-Element über die IWMSReaderNetworkConfig-Schnittstelle und die folgenden Methoden:
HRESULT AddLoggingUrl(LPCWSTR pwszUrl);
HRESULT GetLoggingUrl(DWORD dwIndex, LPCWSTR pwszUrl, DWORD *pcchUrl);
HRESULT GetLoggingUrlCount(DWORD *pdwUrlCount);
HRESULT ResetLoggingUrlList();
Zusätzlich zu den informationen, die automatisch protokolliert werden, kann eine Metadateiwiedergabeliste benutzerdefinierte Informationen mithilfe des PARAM-Elements protokollieren. Um das PARAM-Element auf diese Weise zu verwenden, legen Sie das NAME-Attribut auf "log:" fest, gefolgt von einem Protokollfeldnamen und einem optionalen XML-Namespace, der durch einen anderen Doppelpunkt (":") vom Feldnamen getrennt ist. Alles nach dem zweiten Doppelpunkt wird als Namespace behandelt, sodass der Feldname keinen Doppelpunkt enthalten sollte.
Das im NAME-Attribut angegebene Protokollfeld wird auf den Wert des VALUE-Attributs festgelegt. Wenn das Protokoll noch kein Feld mit dem angegebenen Namen enthält, wird es hinzugefügt.
Beispielcode
<ASX version="3.0">
<LOGURL href="https://www.proseware.com/log.asp?SomeArg=SomeVal" />
<ENTRY>
<REF href="mms://ucast.proseware.com/Media1.wma" />
<LOGURL href="https://www.proseware.com/cgi-bin/logging.pl?SomeArg=SomeVal" />
<LOGURL href="https://www.proseware.com/WMLogging.dll?SomeArg=SomeVal" />
<PARAM name="log:cs-media-role" value="Advertisement"/>
<PARAM name="log:cs-media-name:namespace" value="Music"/>
<REF href=rtsp://ucast.proseware.com/Media1.wma"/>
</ENTRY>
<ENTRY>
<REF href="mms://ucast.proseware.com/Media2.wma"/>
</ENTRY>
</ASX>