Partilhar via


Registo de Cliente (Windows Media Format 11 SDK)

[A funcionalidade associada a esta página, Windows Media Format 11 SDK, é uma funcionalidade herdada. Foi substituído por Source Reader e Sink Writer. do Source Reader e Sink Writer foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize do Leitor de Origem e do Gravador de Separadores em vez de SDK do Windows Media Format 11, sempre que possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Quando o objeto leitor lê dados de um servidor, ele envia informações de log para o servidor. Os provedores de conteúdo normalmente usam essas informações para medir a qualidade do serviço, gerar informações de faturamento ou rastrear publicidade. As informações de registo não contêm dados pessoais.

O aplicativo pode especificar algumas das informações que são registradas, chamando o IWMReaderAdvanced::SetClientInfo método no objeto reader. Por exemplo, você pode especificar a cadeia de caracteres do agente do usuário, o nome do aplicativo player ou a página da Web que hospeda o player.

As informações de log incluem um GUID que identifica a sessão. Por padrão, o leitor gera uma ID de sessão anônima. Opcionalmente, o leitor pode, em vez disso, enviar um ID que identifique exclusivamente o usuário atual. Para habilitar esse recurso, chame o método de IWMReaderAdvanced2::SetLogClientID com o valor TRUE.

Você pode configurar o objeto reader para enviar as informações de log para outro servidor, além do servidor de origem. Para fazer isso, chame o método de IWMReaderNetworkConfig::AddLoggingUrl com a URL do servidor. Esse URL deve apontar para um script ou executável que possa lidar com solicitações HTTP GET e POST. Você pode usar o Multicast and Logging Advertisement Agent (wmsiislog.dll) ou pode escrever um script ASP ou CGI personalizado para receber os dados de log.

Observação

Você pode obter a mesma funcionalidade criando uma lista de reprodução do lado do servidor com um atributo logURL.

 

Quando o objeto reader envia o log, ele faz o seguinte:

  1. Envia uma solicitação GET vazia para o servidor.
  2. Analisa a resposta do servidor para uma das seguintes cadeias de caracteres:
    • <body><h1>NetShow ISAPI Log Dll</h1>
    • <body><h1>WMS ISAPI Log Dll/0.0.0.0</h1> onde "0.0.0.0" é qualquer número de versão válido.
  3. Envia uma solicitação POST com as informações de log.

O código a seguir mostra um exemplo de script ASP que recebe as informações de log e as grava em um arquivo:

<html>
<body>
<h1>WMS ISAPI Log Dll/9.00.00.00.00</h1>
<%@ Language=VBScript %>
<%
  Dim temp, i, post, file, fso

  ' Convert the binary data to a string.
  For i = 1 To Request.TotalBytes
    temp = Request.BinaryRead(1)
    pose = pose & Chr(AscB(temp))
  Next

  Set fso = createobject("Scripting.FileSystemObject")
  Set file = fso.OpenTextFile("C:\log.txt", 8, TRUE)

  file.writeline Now
  file.writeline post
  file.writeBlankLines 2 
%>
</body>
</html>

Você pode especificar vários servidores para receber informações de log; basta chamar AddLoggingUrl uma vez com cada URL. Para limpar a lista de servidores que recebem logs, chame o IWMReaderNetworkConfig::ResetLoggingUrlList método.

Implementando a funcionalidade de rede

Interface IWMReaderAdvanced

Interface IWMReaderAdvanced2