Example #1
0
        /// <summary>
        /// Retrieve the PlayReady license expiration date based onthe video KeyID
        /// This method uses the Windows Runtime library MediaHelpers to get the expiration date
        /// The use of this library is a turn around to a PlayReady issue with .Net Native.
        /// </summary>
        private DateTime GetLicenseExpirationDate(Guid videoId)
        {

            var keyIdString = Convert.ToBase64String(videoId.ToByteArray());
            try
            {
                var contentHeader = new Windows.Media.Protection.PlayReady.PlayReadyContentHeader(
                    videoId,
                    keyIdString,
                    Windows.Media.Protection.PlayReady.PlayReadyEncryptionAlgorithm.Aes128Ctr,
                    null,
                    null,
                    string.Empty,
                    new Guid());
                Windows.Media.Protection.PlayReady.IPlayReadyLicense[] licenses = new Windows.Media.Protection.PlayReady.PlayReadyLicenseIterable(contentHeader, true).ToArray();
                foreach (var lic in licenses)
                {
                    DateTimeOffset? d = MediaHelpers.PlayReadyHelper.GetLicenseExpirationDate(lic);
                    if ((d != null) && (d.HasValue))
                        return d.Value.DateTime;
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("GetLicenseExpirationDate Exception: " + e.Message);
                return DateTime.MinValue;
            }
            return DateTime.MinValue;
        }
Example #2
0
        /// <summary>
        /// GetPlayReadyExpirationDate
        /// Return PlayReady Expiration date (return DateTimeOffset.MinValue if not available)
        /// </summary>
        /// <param name=""></param>
        /// <returns>true if protected</returns>
        public DateTimeOffset GetPlayReadyExpirationDate()
        {
            DateTimeOffset d = DateTimeOffset.MinValue;
            if (!string.IsNullOrEmpty(this.ProtectionData) &&
                (this.ProtectionGuid != Guid.Empty))
            {
                Uri DefaultLicenseAcquistionUri;
                Guid DefaultContentKeyId;
                string DefaultContentKeyIdString;
                Guid DefaultDomainServiceId;

                if (GetPlayReadyParameters(this.ProtectionData, out DefaultLicenseAcquistionUri, out DefaultContentKeyId, out DefaultContentKeyIdString, out DefaultDomainServiceId))
                {
                    var keyIdString = Convert.ToBase64String(DefaultContentKeyId.ToByteArray());
                    try
                    {
                        var contentHeader = new Windows.Media.Protection.PlayReady.PlayReadyContentHeader(
                            DefaultContentKeyId,
                            keyIdString,
                            Windows.Media.Protection.PlayReady.PlayReadyEncryptionAlgorithm.Aes128Ctr,
                            null,
                            null,
                            string.Empty,
                            new Guid());
                        Windows.Media.Protection.PlayReady.IPlayReadyLicense[] licenses = new Windows.Media.Protection.PlayReady.PlayReadyLicenseIterable(contentHeader, true).ToArray();
                        foreach (var lic in licenses)
                        {
                            DateTimeOffset? dto = MediaHelpers.PlayReadyHelper.GetLicenseExpirationDate(lic);
                            if ((dto != null) && (dto.HasValue))
                                return dto.Value.DateTime;
                        }
                    }
                    catch (Exception e)
                    {
                        System.Diagnostics.Debug.WriteLine("GetPlayReadyExpirationDate Exception: " + e.Message);
                        return DateTimeOffset.MinValue;
                    }
                } 
                return d;
            }
            return d;
        }