Compartilhar via


Convertendo um arquivo de DRM-Protected em um fluxo drm 10 do Windows Media para dispositivos de rede

Depois que um dispositivo for registrado e validado, você poderá começar a processar mensagens de solicitação de licença dele. As mensagens de solicitação de licença são enviadas por dispositivos quando a ação do aplicativo é necessária. A única ação com suporte no momento é "Reproduzir", que é uma solicitação de dados seguros para reprodução.

Ao receber uma mensagem de solicitação de licença, execute as seguintes etapas:

  1. Analise a mensagem de solicitação de licença chamando o método IWMDRMMessageParser::P arseLicenseRequestMsg .
  2. Obtenha a interface IWMRegisteredDevice para o dispositivo chamando o método IWMDeviceRegistration::GetRegisteredDeviceByID , passando o certificado e o número de série obtidos na etapa 1.
  3. Verifique se o dispositivo está pronto para receber dados seguros:
  4. Crie uma instância do objeto transcryptor DRM chamando a função WMCreateDRMTranscryptor .
  5. Chame o método IWMDRMTranscryptor::Initialize para inicializar o transcryptor. Esse método usa um ponteiro para a implementação da interface IWMStatusCallback, que ele usa para fornecer mensagens status. Esse método também retorna uma mensagem de solicitação de licença que deve ser enviada ao dispositivo antes de continuar.
  6. Quando o método IWMStatusCallback::OnStatus do aplicativo receber a mensagem WMT_TRANSCRYPTOR_INIT status, chame o método IWMDRMTranscryptor::Seek para buscar a posição inicial apropriada no arquivo. Para começar no início do arquivo, você deve chamar Seek com o tempo 0.
  7. O transcryptor envia uma mensagem WMT_TRANSCRYPTOR_SEEKED quando está pronto para entregar dados do arquivo no novo momento da apresentação. Faça chamadas repetidas para o método IWMDRMTranscryptor::Read para obter partes convertidas de dados de mídia. Cada chamada é assíncrona e não é concluída até que uma mensagem WMT_TRANSCRYPTOR_READ seja recebida. Ao receber a mensagem, você pode enviar os dados para o dispositivo receptor.
  8. Quando você recebe uma mensagem WMT_TRANSCRYPTOR_READ com o parâmetro hr definido como NS_S_TRANSCRYPTOR_EOF, todo o arquivo foi lido. Neste ponto, chame o método IWMDRMTranscryptor::Close para fechar o arquivo e liberar recursos.
  9. Quando a mensagem WMT_TRANSCRYPTOR_CLOSED é recebida, você pode liberar a interface IWMDRMTranscryptor .

Observação

O DRM não é compatível com a versão baseada em x64 deste SDK.

 

Usando o Protocolo DRM 10 do Windows Media para Dispositivos de Rede