Microsoft.WindowsAzure.MediaServices.Client.Tests.JobTests.UpdatePlayReadyConfigurationXML C# (CSharp) Method

UpdatePlayReadyConfigurationXML() static private method

static private UpdatePlayReadyConfigurationXML ( Guid keyId, byte keyValue, Uri licenseAcquisitionUrl, string originalXmlConfiguration ) : string
keyId Guid
keyValue byte
licenseAcquisitionUrl Uri
originalXmlConfiguration string
return string
        internal static string UpdatePlayReadyConfigurationXML(Guid keyId, byte[] keyValue, Uri licenseAcquisitionUrl, string originalXmlConfiguration)
        {
            XNamespace xmlns = "http://schemas.microsoft.com/iis/media/v4/TM/TaskDefinition#";

            StringReader stringReader = new StringReader(originalXmlConfiguration);
            XmlReader reader = XmlReader.Create(stringReader, null);
            XDocument doc = XDocument.Load(reader);

            var licenseAcquisitionUrlEl = doc
                    .Descendants(xmlns + "property")
                    .Where(p => p.Attribute("name").Value == "licenseAcquisitionUrl")
                    .FirstOrDefault();
            var contentKeyEl = doc
                    .Descendants(xmlns + "property")
                    .Where(p => p.Attribute("name").Value == "contentKey")
                    .FirstOrDefault();
            var keyIdEl = doc
                    .Descendants(xmlns + "property")
                    .Where(p => p.Attribute("name").Value == "keyId")
                    .FirstOrDefault();

            // Update the "value" property.
            if (licenseAcquisitionUrlEl != null)
            {
                licenseAcquisitionUrlEl.Attribute("value").SetValue(licenseAcquisitionUrl.ToString());
            }

            if (contentKeyEl != null)
            {
                contentKeyEl.Attribute("value").SetValue(Convert.ToBase64String(keyValue));
            }

            if (keyIdEl != null)
            {
                keyIdEl.Attribute("value").SetValue(keyId);
            }

            return doc.ToString();
        }

Usage Example

Esempio n. 1
0
        private IAsset CreatePlayReadyProtectedSmoothAsset(IAsset clearSmoothAssetToProtect)
        {
            Guid keyId = Guid.NewGuid();

            byte[] keyValue = ContentKeyTests.GetRandomBuffer(16);
            string encryptionConfiguration = File.ReadAllText(WindowsAzureMediaServicesTestConfiguration.PlayReadyConfigWithContentKey);

            encryptionConfiguration = JobTests.UpdatePlayReadyConfigurationXML(keyId, keyValue, new Uri("http://www.fakeurl.com"), encryptionConfiguration);

            IJob            job            = _mediaContext.Jobs.Create("Add PlayReady Protection Job");
            IMediaProcessor mediaProcessor = JobTests.GetMediaProcessor(_mediaContext, WindowsAzureMediaServicesTestConfiguration.MpEncryptorName);
            ITask           task           = job.Tasks.AddNew("PlayReady Encryption Task", mediaProcessor, encryptionConfiguration, TaskOptions.ProtectedConfiguration);

            task.InputAssets.Add(clearSmoothAssetToProtect);
            task.OutputAssets.AddNew("PlayReady Protected Smooth", AssetCreationOptions.CommonEncryptionProtected);

            job.Submit();

            job.GetExecutionProgressTask(CancellationToken.None).Wait();

            job.Refresh();

            return(job.OutputMediaAssets[0]);
        }
JobTests