playreadyDrmParser_(drmTag, mimeType, initSegmentRef) {
    const method = drmTag.getRequiredAttrValue('METHOD');
    const VALID_METHODS = ['SAMPLE-AES', 'SAMPLE-AES-CTR'];
    if (!VALID_METHODS.includes(method)) {
      shaka.log.error('PlayReady in HLS is only supported with [',
          VALID_METHODS.join(', '), '], not', method);
      return Promise.resolve(null);
    }

    let encryptionScheme = 'cenc';
    if (method == 'SAMPLE-AES') {
      encryptionScheme = 'cbcs';
    }

    const uri = drmTag.getRequiredAttrValue('URI');
    const parsedData = shaka.net.DataUriPlugin.parseRaw(uri.split('?')[0]);

    // The data encoded in the URI is a PlayReady Pro Object, so we need
    // convert it to pssh.
    const data = shaka.util.BufferUtils.toUint8(parsedData.data);
    const systemId = new Uint8Array([
      0x9a, 0x04, 0xf0, 0x79, 0x98, 0x40, 0x42, 0x86,
      0xab, 0x92, 0xe6, 0x5b, 0xe0, 0x88, 0x5f, 0x95,
    ]);
    const keyIds = new Set();
    const psshVersion = 0;
    const pssh =
        shaka.util.Pssh.createPssh(data, systemId, keyIds, psshVersion);
    const drmInfo = shaka.util.ManifestParserUtils.createDrmInfo(
        'com.microsoft.playready', encryptionScheme, [
          {initDataType: 'cenc', initData: pssh},
        ]);

    const input = shaka.util.TXml.parseXmlString([
      '<PLAYREADY>',
      shaka.util.Uint8ArrayUtils.toBase64(data),
      '</PLAYREADY>',
    ].join('\n'));
    if (input) {
      drmInfo.licenseServerUri = shaka.drm.PlayReady.getLicenseUrl(input);
    }

    return Promise.resolve(drmInfo);
  }
See: https://docs.microsoft.com/en-us/playready/packaging/mp4-based-formats-supported-by-playready-clients?tabs=case4

@param {!shaka.hls.Tag} drmTag
@param {string} mimeType
@param {?shaka.media.InitSegmentReference} initSegmentRef
@return {!Promise<?shaka.extern.DrmInfo>}
@private