Convertir un archivo de DRM-Protected en un DRM 10 de Windows Media para la transmisión de dispositivos de red
Una vez registrado y validado un dispositivo, puede empezar a procesar los mensajes de solicitud de licencia desde él. Los dispositivos envían mensajes de solicitud de licencia cuando se necesita la acción de la aplicación. La única acción admitida actualmente es "Reproducir", que es una solicitud de datos seguros para la reproducción.
Cuando reciba un mensaje de solicitud de licencia, debe realizar los pasos siguientes:
- Analice el mensaje de solicitud de licencia llamando al método IWMDRMMessageParser::P arseLicenseRequestMsg .
- Obtenga la interfaz IWMRegisteredDevice del dispositivo mediante una llamada al método IWMDeviceRegistration::GetRegisteredDeviceByID , pasando el certificado y el número de serie obtenidos en el paso 1.
- Compruebe que el dispositivo está listo para recibir datos seguros:
- Llame a IWMRegisteredDevice::IsApproved para comprobar que el dispositivo se ha aprobado. La aprobación siempre debe basarse en las preferencias del usuario.
- Llame a IWMRegisteredDevice::IsValid para comprobar que el dispositivo se ha validado en las últimas 48 horas. Si el dispositivo no es válido, debe realizar la detección de proximidad. Para obtener más información, vea Realizar la detección de proximidad.
- Llame a IWMRegisteredDevice::IsOpened para comprobar que el dispositivo se ha abierto. Si el dispositivo no está abierto, puede abrirlo llamando a IWMRegisteredDevice::Open. Solo puede tener abiertos 10 dispositivos en el equipo a la vez. Es posible que tenga que cerrar otro dispositivo para poder abrir el para el que está procesando la solicitud. Para cerrar un dispositivo, llame al método IWMRegisteredDevice::Close .
- Cree una instancia del objeto transcryptor DRM mediante una llamada a la función WMCreateDRMTranscryptor .
- Llame al método IWMDRMTranscryptor::Initialize para inicializar el transcifrador. Este método toma un puntero a la implementación de la interfaz IWMStatusCallback , que usa para entregar mensajes de estado. Este método también devuelve un mensaje de solicitud de licencia que se debe enviar al dispositivo antes de continuar.
- Cuando el método IWMStatusCallback::OnStatus de la aplicación recibe el mensaje de estado WMT_TRANSCRYPTOR_INIT, llame al método IWMDRMTranscryptor::Seek para buscar la posición inicial adecuada en el archivo. Para comenzar al principio del archivo, debe llamar a Seek con la hora 0.
- El transcifrador envía un mensaje de WMT_TRANSCRYPTOR_SEEKED cuando está listo para entregar datos del archivo en el nuevo momento de presentación. Realice llamadas repetidas al método IWMDRMTranscryptor::Read para obtener fragmentos convertidos de datos multimedia. Cada llamada es asincrónica y no se completa hasta que se recibe un mensaje de WMT_TRANSCRYPTOR_READ. Cuando reciba el mensaje, puede enviar los datos al dispositivo receptor.
- Cuando recibe un mensaje de WMT_TRANSCRYPTOR_READ con el parámetro hr establecido en NS_S_TRANSCRYPTOR_EOF, se ha leído todo el archivo. En este momento, llama al método IWMDRMTranscryptor::Close para cerrar el archivo y liberar recursos.
- Cuando se recibe el mensaje WMT_TRANSCRYPTOR_CLOSED, puede liberar la interfaz IWMDRMTranscryptor .
Nota
DRM no es compatible con la versión basada en x64 de este SDK.
Temas relacionados