我最近根据https://github.com/microsoft/Windows-universal-samples/blob/master/Samples/AdaptiveStreaming/cs/Helpers/PlayReadyHelper.cs找到的示例代码,使用 PlayReady DRM 实现了一个工作 UWP 应用程序旨在播放受保护的内容。
此应用程序构建在 Windows 10 中,在 VirtualBox VM 中运行并按预期工作(即保护管理器发出 PlayReadyLicenseAcquisitionServiceRequest,播放成功解密内容)。
但是,在将应用程序代码移动到物理 Windows 10 机器时(尝试了多个版本)。由于某种原因,上述方法不再有效,特别是该事件甚至永远不会触发,因此不需要许可证。此事件https://github.com/microsoft/Windows-universal-samples/blob/master/Samples/AdaptiveStreaming/cs/Helpers/PlayReadyHelper.cs#L99(个性化请求在首次使用时按预期触发)
我在虚拟机和物理机中以相同的方式绑定事件,即protectionManager.ServiceRequested += new ServiceRequestedEventHandler(ProtectionManager_ServiceRequested);
所以,我的问题是,什么会导致 protectionManager.ServiceRequested 不触发。我假设硬件 DRM 可能是这里的一个原因,我尝试强制使用似乎没有改变任何东西的软件。
更新:我设法找到了这个错误 Media Failed::MF_MEDIA_ENGINE_ERR_SRC_NOT_SUPPORTED : HRESULT - 0x80041108 但同样,为什么 src 可以在 VM 上而不是在物理机上工作仍然没有意义。
非常感谢任何帮助。谢谢,J