android.media.MediaCrypto#android.media.NotProvisionedException源码实例Demo

下面列出了android.media.MediaCrypto#android.media.NotProvisionedException 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: K-Sonic   文件: FrameworkMediaDrm.java
@Override
public KeyRequest getKeyRequest(byte[] scope, byte[] init, String mimeType, int keyType,
    HashMap<String, String> optionalParameters) throws NotProvisionedException {
  final MediaDrm.KeyRequest request = mediaDrm.getKeyRequest(scope, init, mimeType, keyType,
      optionalParameters);
  return new KeyRequest() {
    @Override
    public byte[] getData() {
      return request.getData();
    }

    @Override
    public String getDefaultUrl() {
      return request.getDefaultUrl();
    }
  };
}
 
源代码2 项目: MediaSDK   文件: DefaultDrmSession.java
private void onKeysError(Exception e) {
  if (e instanceof NotProvisionedException) {
    provisioningManager.provisionRequired(this);
  } else {
    onError(e);
  }
}
 
源代码3 项目: MediaSDK   文件: FrameworkMediaDrm.java
@Override
public KeyRequest getKeyRequest(
    byte[] scope,
    @Nullable List<SchemeData> schemeDatas,
    int keyType,
    @Nullable HashMap<String, String> optionalParameters)
    throws NotProvisionedException {
  SchemeData schemeData = null;
  byte[] initData = null;
  String mimeType = null;
  if (schemeDatas != null) {
    schemeData = getSchemeData(uuid, schemeDatas);
    initData = adjustRequestInitData(uuid, Assertions.checkNotNull(schemeData.data));
    mimeType = adjustRequestMimeType(uuid, schemeData.mimeType);
  }
  MediaDrm.KeyRequest request =
      mediaDrm.getKeyRequest(scope, initData, mimeType, keyType, optionalParameters);

  byte[] requestData = adjustRequestData(uuid, request.getData());

  String licenseServerUrl = request.getDefaultUrl();
  if (MOCK_LA_URL_VALUE.equals(licenseServerUrl)) {
    licenseServerUrl = "";
  }
  if (TextUtils.isEmpty(licenseServerUrl)
      && schemeData != null
      && !TextUtils.isEmpty(schemeData.licenseServerUrl)) {
    licenseServerUrl = schemeData.licenseServerUrl;
  }

  return new KeyRequest(requestData, licenseServerUrl);
}
 
源代码4 项目: MediaSDK   文件: FrameworkMediaDrm.java
@Nullable
@Override
public byte[] provideKeyResponse(byte[] scope, byte[] response)
    throws NotProvisionedException, DeniedByServerException {
  if (C.CLEARKEY_UUID.equals(uuid)) {
    response = ClearKeyUtil.adjustResponseData(response);
  }

  return mediaDrm.provideKeyResponse(scope, response);
}
 
源代码5 项目: TelePlus-Android   文件: DefaultDrmSession.java
private void onKeysError(Exception e) {
  if (e instanceof NotProvisionedException) {
    provisioningManager.provisionRequired(this);
  } else {
    onError(e);
  }
}
 
源代码6 项目: TelePlus-Android   文件: FrameworkMediaDrm.java
@Override
public KeyRequest getKeyRequest(byte[] scope, byte[] init, String mimeType, int keyType,
    HashMap<String, String> optionalParameters) throws NotProvisionedException {

  // Prior to L the Widevine CDM required data to be extracted from the PSSH atom. Some Amazon
  // devices also required data to be extracted from the PSSH atom for PlayReady.
  if ((Util.SDK_INT < 21 && C.WIDEVINE_UUID.equals(uuid))
      || (C.PLAYREADY_UUID.equals(uuid)
          && "Amazon".equals(Util.MANUFACTURER)
          && ("AFTB".equals(Util.MODEL) // Fire TV Gen 1
              || "AFTS".equals(Util.MODEL) // Fire TV Gen 2
              || "AFTM".equals(Util.MODEL)))) { // Fire TV Stick Gen 1
    byte[] psshData = PsshAtomUtil.parseSchemeSpecificData(init, uuid);
    if (psshData == null) {
      // Extraction failed. schemeData isn't a PSSH atom, so leave it unchanged.
    } else {
      init = psshData;
    }
  }

  // Prior to API level 26 the ClearKey CDM only accepted "cenc" as the scheme for MP4.
  if (Util.SDK_INT < 26
      && C.CLEARKEY_UUID.equals(uuid)
      && (MimeTypes.VIDEO_MP4.equals(mimeType) || MimeTypes.AUDIO_MP4.equals(mimeType))) {
    mimeType = CENC_SCHEME_MIME_TYPE;
  }

  final MediaDrm.KeyRequest request = mediaDrm.getKeyRequest(scope, init, mimeType, keyType,
      optionalParameters);

  byte[] requestData = request.getData();
  if (C.CLEARKEY_UUID.equals(uuid)) {
    requestData = ClearKeyUtil.adjustRequestData(requestData);
  }

  return new DefaultKeyRequest(requestData, request.getDefaultUrl());
}
 
源代码7 项目: TelePlus-Android   文件: FrameworkMediaDrm.java
@Override
public byte[] provideKeyResponse(byte[] scope, byte[] response)
    throws NotProvisionedException, DeniedByServerException {

  if (C.CLEARKEY_UUID.equals(uuid)) {
    response = ClearKeyUtil.adjustResponseData(response);
  }

  return mediaDrm.provideKeyResponse(scope, response);
}
 
源代码8 项目: TelePlus-Android   文件: ExoMediaDrm.java
/** @see MediaDrm#getKeyRequest(byte[], byte[], String, int, HashMap) */
KeyRequest getKeyRequest(
    byte[] scope,
    byte[] init,
    String mimeType,
    int keyType,
    HashMap<String, String> optionalParameters)
    throws NotProvisionedException;
 
源代码9 项目: TelePlus-Android   文件: DefaultDrmSession.java
private void onKeysError(Exception e) {
  if (e instanceof NotProvisionedException) {
    provisioningManager.provisionRequired(this);
  } else {
    onError(e);
  }
}
 
源代码10 项目: TelePlus-Android   文件: FrameworkMediaDrm.java
@Override
public KeyRequest getKeyRequest(byte[] scope, byte[] init, String mimeType, int keyType,
    HashMap<String, String> optionalParameters) throws NotProvisionedException {

  // Prior to L the Widevine CDM required data to be extracted from the PSSH atom. Some Amazon
  // devices also required data to be extracted from the PSSH atom for PlayReady.
  if ((Util.SDK_INT < 21 && C.WIDEVINE_UUID.equals(uuid))
      || (C.PLAYREADY_UUID.equals(uuid)
          && "Amazon".equals(Util.MANUFACTURER)
          && ("AFTB".equals(Util.MODEL) // Fire TV Gen 1
              || "AFTS".equals(Util.MODEL) // Fire TV Gen 2
              || "AFTM".equals(Util.MODEL)))) { // Fire TV Stick Gen 1
    byte[] psshData = PsshAtomUtil.parseSchemeSpecificData(init, uuid);
    if (psshData == null) {
      // Extraction failed. schemeData isn't a PSSH atom, so leave it unchanged.
    } else {
      init = psshData;
    }
  }

  // Prior to API level 26 the ClearKey CDM only accepted "cenc" as the scheme for MP4.
  if (Util.SDK_INT < 26
      && C.CLEARKEY_UUID.equals(uuid)
      && (MimeTypes.VIDEO_MP4.equals(mimeType) || MimeTypes.AUDIO_MP4.equals(mimeType))) {
    mimeType = CENC_SCHEME_MIME_TYPE;
  }

  final MediaDrm.KeyRequest request = mediaDrm.getKeyRequest(scope, init, mimeType, keyType,
      optionalParameters);

  byte[] requestData = request.getData();
  if (C.CLEARKEY_UUID.equals(uuid)) {
    requestData = ClearKeyUtil.adjustRequestData(requestData);
  }

  return new DefaultKeyRequest(requestData, request.getDefaultUrl());
}
 
源代码11 项目: TelePlus-Android   文件: FrameworkMediaDrm.java
@Override
public byte[] provideKeyResponse(byte[] scope, byte[] response)
    throws NotProvisionedException, DeniedByServerException {

  if (C.CLEARKEY_UUID.equals(uuid)) {
    response = ClearKeyUtil.adjustResponseData(response);
  }

  return mediaDrm.provideKeyResponse(scope, response);
}
 
源代码12 项目: TelePlus-Android   文件: ExoMediaDrm.java
/** @see MediaDrm#getKeyRequest(byte[], byte[], String, int, HashMap) */
KeyRequest getKeyRequest(
    byte[] scope,
    byte[] init,
    String mimeType,
    int keyType,
    HashMap<String, String> optionalParameters)
    throws NotProvisionedException;
 
源代码13 项目: K-Sonic   文件: DefaultDrmSessionManager.java
private void onKeysError(Exception e) {
  if (e instanceof NotProvisionedException) {
    postProvisionRequest();
  } else {
    onError(e);
  }
}
 
源代码14 项目: Exoplayer_VLC   文件: StreamingDrmSessionManager.java
private void postKeyRequest() {
  KeyRequest keyRequest;
  try {
    keyRequest = mediaDrm.getKeyRequest(sessionId, schemePsshData, mimeType,
        MediaDrm.KEY_TYPE_STREAMING, optionalKeyRequestParameters);
    postRequestHandler.obtainMessage(MSG_KEYS, keyRequest).sendToTarget();
  } catch (NotProvisionedException e) {
    onKeysError(e);
  }
}
 
源代码15 项目: Exoplayer_VLC   文件: StreamingDrmSessionManager.java
private void onKeysError(Exception e) {
  if (e instanceof NotProvisionedException) {
    postProvisionRequest();
  } else {
    onError(e);
  }
}
 
源代码16 项目: Telegram-FOSS   文件: DefaultDrmSession.java
private void onKeysError(Exception e) {
  if (e instanceof NotProvisionedException) {
    provisioningManager.provisionRequired(this);
  } else {
    onError(e);
  }
}
 
源代码17 项目: Telegram-FOSS   文件: FrameworkMediaDrm.java
@Override
public KeyRequest getKeyRequest(
    byte[] scope,
    @Nullable List<DrmInitData.SchemeData> schemeDatas,
    int keyType,
    @Nullable HashMap<String, String> optionalParameters)
    throws NotProvisionedException {
  SchemeData schemeData = null;
  byte[] initData = null;
  String mimeType = null;
  if (schemeDatas != null) {
    schemeData = getSchemeData(uuid, schemeDatas);
    initData = adjustRequestInitData(uuid, Assertions.checkNotNull(schemeData.data));
    mimeType = adjustRequestMimeType(uuid, schemeData.mimeType);
  }
  MediaDrm.KeyRequest request =
      mediaDrm.getKeyRequest(scope, initData, mimeType, keyType, optionalParameters);

  byte[] requestData = adjustRequestData(uuid, request.getData());

  String licenseServerUrl = request.getDefaultUrl();
  if (MOCK_LA_URL_VALUE.equals(licenseServerUrl)) {
    licenseServerUrl = "";
  }
  if (TextUtils.isEmpty(licenseServerUrl)
      && schemeData != null
      && !TextUtils.isEmpty(schemeData.licenseServerUrl)) {
    licenseServerUrl = schemeData.licenseServerUrl;
  }

  return new KeyRequest(requestData, licenseServerUrl);
}
 
源代码18 项目: Telegram-FOSS   文件: FrameworkMediaDrm.java
@Nullable
@Override
public byte[] provideKeyResponse(byte[] scope, byte[] response)
    throws NotProvisionedException, DeniedByServerException {
  if (C.CLEARKEY_UUID.equals(uuid)) {
    response = ClearKeyUtil.adjustResponseData(response);
  }

  return mediaDrm.provideKeyResponse(scope, response);
}
 
源代码19 项目: Telegram   文件: DefaultDrmSession.java
private void onKeysError(Exception e) {
  if (e instanceof NotProvisionedException) {
    provisioningManager.provisionRequired(this);
  } else {
    onError(e);
  }
}
 
源代码20 项目: Telegram   文件: FrameworkMediaDrm.java
@Override
public KeyRequest getKeyRequest(
    byte[] scope,
    @Nullable List<DrmInitData.SchemeData> schemeDatas,
    int keyType,
    @Nullable HashMap<String, String> optionalParameters)
    throws NotProvisionedException {
  SchemeData schemeData = null;
  byte[] initData = null;
  String mimeType = null;
  if (schemeDatas != null) {
    schemeData = getSchemeData(uuid, schemeDatas);
    initData = adjustRequestInitData(uuid, Assertions.checkNotNull(schemeData.data));
    mimeType = adjustRequestMimeType(uuid, schemeData.mimeType);
  }
  MediaDrm.KeyRequest request =
      mediaDrm.getKeyRequest(scope, initData, mimeType, keyType, optionalParameters);

  byte[] requestData = adjustRequestData(uuid, request.getData());

  String licenseServerUrl = request.getDefaultUrl();
  if (MOCK_LA_URL_VALUE.equals(licenseServerUrl)) {
    licenseServerUrl = "";
  }
  if (TextUtils.isEmpty(licenseServerUrl)
      && schemeData != null
      && !TextUtils.isEmpty(schemeData.licenseServerUrl)) {
    licenseServerUrl = schemeData.licenseServerUrl;
  }

  return new KeyRequest(requestData, licenseServerUrl);
}
 
源代码21 项目: Telegram   文件: FrameworkMediaDrm.java
@Nullable
@Override
public byte[] provideKeyResponse(byte[] scope, byte[] response)
    throws NotProvisionedException, DeniedByServerException {
  if (C.CLEARKEY_UUID.equals(uuid)) {
    response = ClearKeyUtil.adjustResponseData(response);
  }

  return mediaDrm.provideKeyResponse(scope, response);
}
 
源代码22 项目: MediaSDK   文件: ExoMediaDrm.java
/** @see MediaDrm#provideKeyResponse(byte[], byte[]) */
@Nullable
byte[] provideKeyResponse(byte[] scope, byte[] response)
    throws NotProvisionedException, DeniedByServerException;
 
源代码23 项目: TelePlus-Android   文件: ExoMediaDrm.java
/** @see MediaDrm#provideKeyResponse(byte[], byte[]) */
byte[] provideKeyResponse(byte[] scope, byte[] response)
    throws NotProvisionedException, DeniedByServerException;
 
源代码24 项目: TelePlus-Android   文件: ExoMediaDrm.java
/** @see MediaDrm#provideKeyResponse(byte[], byte[]) */
byte[] provideKeyResponse(byte[] scope, byte[] response)
    throws NotProvisionedException, DeniedByServerException;
 
源代码25 项目: K-Sonic   文件: FrameworkMediaDrm.java
@Override
public byte[] openSession() throws NotProvisionedException, ResourceBusyException {
  return mediaDrm.openSession();
}
 
源代码26 项目: K-Sonic   文件: FrameworkMediaDrm.java
@Override
public byte[] provideKeyResponse(byte[] scope, byte[] response)
    throws NotProvisionedException, DeniedByServerException {
  return mediaDrm.provideKeyResponse(scope, response);
}
 
源代码27 项目: Telegram-FOSS   文件: ExoMediaDrm.java
/** @see MediaDrm#provideKeyResponse(byte[], byte[]) */
@Nullable
byte[] provideKeyResponse(byte[] scope, byte[] response)
    throws NotProvisionedException, DeniedByServerException;
 
源代码28 项目: Telegram   文件: ExoMediaDrm.java
/** @see MediaDrm#provideKeyResponse(byte[], byte[]) */
@Nullable
byte[] provideKeyResponse(byte[] scope, byte[] response)
    throws NotProvisionedException, DeniedByServerException;
 
源代码29 项目: MediaSDK   文件: ExoMediaDrm.java
/**
 * Generates a key request.
 *
 * @param scope If {@code keyType} is {@link #KEY_TYPE_STREAMING} or {@link #KEY_TYPE_OFFLINE},
 *     the session id that the keys will be provided to. If {@code keyType} is {@link
 *     #KEY_TYPE_RELEASE}, the keySetId of the keys to release.
 * @param schemeDatas If key type is {@link #KEY_TYPE_STREAMING} or {@link #KEY_TYPE_OFFLINE}, a
 *     list of {@link SchemeData} instances extracted from the media. Null otherwise.
 * @param keyType The type of the request. Either {@link #KEY_TYPE_STREAMING} to acquire keys for
 *     streaming, {@link #KEY_TYPE_OFFLINE} to acquire keys for offline usage, or {@link
 *     #KEY_TYPE_RELEASE} to release acquired keys. Releasing keys invalidates them for all
 *     sessions.
 * @param optionalParameters Are included in the key request message to allow a client application
 *     to provide additional message parameters to the server. This may be {@code null} if no
 *     additional parameters are to be sent.
 * @return The generated key request.
 * @see MediaDrm#getKeyRequest(byte[], byte[], String, int, HashMap)
 */
KeyRequest getKeyRequest(
        byte[] scope,
        @Nullable List<SchemeData> schemeDatas,
        int keyType,
        @Nullable HashMap<String, String> optionalParameters)
    throws NotProvisionedException;
 
源代码30 项目: Telegram-FOSS   文件: ExoMediaDrm.java
/**
 * Generates a key request.
 *
 * @param scope If {@code keyType} is {@link #KEY_TYPE_STREAMING} or {@link #KEY_TYPE_OFFLINE},
 *     the session id that the keys will be provided to. If {@code keyType} is {@link
 *     #KEY_TYPE_RELEASE}, the keySetId of the keys to release.
 * @param schemeDatas If key type is {@link #KEY_TYPE_STREAMING} or {@link #KEY_TYPE_OFFLINE}, a
 *     list of {@link SchemeData} instances extracted from the media. Null otherwise.
 * @param keyType The type of the request. Either {@link #KEY_TYPE_STREAMING} to acquire keys for
 *     streaming, {@link #KEY_TYPE_OFFLINE} to acquire keys for offline usage, or {@link
 *     #KEY_TYPE_RELEASE} to release acquired keys. Releasing keys invalidates them for all
 *     sessions.
 * @param optionalParameters Are included in the key request message to allow a client application
 *     to provide additional message parameters to the server. This may be {@code null} if no
 *     additional parameters are to be sent.
 * @return The generated key request.
 * @see MediaDrm#getKeyRequest(byte[], byte[], String, int, HashMap)
 */
KeyRequest getKeyRequest(
    byte[] scope,
    @Nullable List<SchemeData> schemeDatas,
    int keyType,
    @Nullable HashMap<String, String> optionalParameters)
    throws NotProvisionedException;