Skip to content

MediaPlayerElement failed to load Mpeg-dash stream (with PlayReady protection) #3059

@JPDelprat

Description

@JPDelprat

Describe the bug

Hello,

In UWP version of MediaPlayerElement (independent from WinUI), I manage to read a mpeg-dash stream with play ready protection (MediaPlayerElement / AdaptiveMediaSource).

The same code with WinUI3 (latest experimental version) gives me a "SourceNotSupported" exception.
It doesn't request the play ready license (MediaProtectionManager.ServiceRequested not called).

On the contrary, I manage to read a mpeg-dash file without protection.

Context :

.net 6.0 a desktop application (no UWP) Microsoft.WindowsAppSDK 1.2.220930.4-preview2" Microsoft.Windows.SDK.BuildTools 10.0.25211-preview

Thanks

Steps to reproduce the bug

Instanciate a MediaPlayerElement

Feed it with the following stream 👍

manifestUrl = "https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey-MultiPeriod/Manifest.mpd";
licenseUrl = "https://drm-playready-licensing.axtest.net/AcquireLicense";

Protection manager is configured the following way:
var contentProtectionSystems = new PropertySet();
contentProtectionSystems.Add(PlayReadyWinRTTrustedInput);
protectionManager.Properties.Add(MediaProtectionSystemIdMapping, contentProtectionSystems);
protectionManager.Properties.Add(MediaProtectionSystemId);
protectionManager.Properties.Add(MediaProtectionContainerGuid);

    mediaPlayer.ProtectionManager = protectionManager;

with
private KeyValuePair<string, object> PlayReadyWinRTTrustedInput = new KeyValuePair<string, object>("{F4637010-03C3-42CD-B932-B48ADF3A6A54}", "Windows.Media.Protection.PlayReady.PlayReadyWinRTTrustedInput");
private KeyValuePair<string, object> MediaProtectionSystemId = new KeyValuePair<string, object>("Windows.Media.Protection.MediaProtectionSystemId", "{F4637010-03C3-42CD-B932-B48ADF3A6A54}");
private KeyValuePair<string, object> MediaProtectionContainerGuid = new KeyValuePair<string, object>("Windows.Media.Protection.MediaProtectionContainerGuid", "{9A04F079-9840-4286-AB92-E65BE0885F95}");
private const string MediaProtectionSystemIdMapping = "Windows.Media.Protection.MediaProtectionSystemIdMapping";

Expected behavior

This stream should be loaded without error.
At least, MediaProtectionManager.ServiceRequested should be called.

Screenshots

No response

NuGet package version

1.2.220909.2-experimental2

Packaging type

No response

Windows version

Windows 10 version 21H2 (19044, November 2021 Update)

IDE

Visual Studio 2022

Additional context

No response

Metadata

Metadata

Assignees

Labels

area-MediaSupport for media playback or encodingbugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions