Java 类android.media.MediaDrm 实例源码

项目:airgram    文件:StreamingDrmSessionManager.java   
@SuppressWarnings("deprecation")
@Override
public void handleMessage(Message msg) {
  if (openCount == 0 || (state != STATE_OPENED && state != STATE_OPENED_WITH_KEYS)) {
    return;
  }
  switch (msg.what) {
    case MediaDrm.EVENT_KEY_REQUIRED:
      postKeyRequest();
      return;
    case MediaDrm.EVENT_KEY_EXPIRED:
      state = STATE_OPENED;
      onError(new KeysExpiredException());
      return;
    case MediaDrm.EVENT_PROVISION_REQUIRED:
      state = STATE_OPENED;
      postProvisionRequest();
      return;
  }
}
项目:ExoPlayer-Offline    文件:DashTest.java   
@TargetApi(18)
@SuppressWarnings("ResourceType")
private static boolean isL1WidevineAvailable(String videoMimeType) {
  try {
    // Force L3 if secure decoder is not available.
    if (MediaCodecUtil.getDecoderInfo(videoMimeType, true) == null) {
      return false;
    }

    MediaDrm mediaDrm = new MediaDrm(WIDEVINE_UUID);
    String securityProperty = mediaDrm.getPropertyString(SECURITY_LEVEL_PROPERTY);
    mediaDrm.release();
    return WIDEVINE_SECURITY_LEVEL_1.equals(securityProperty);
  } catch (DecoderQueryException | UnsupportedSchemeException e) {
    throw new IllegalStateException(e);
  }
}
项目:PlusGram    文件:StreamingDrmSessionManager.java   
@SuppressWarnings("deprecation")
@Override
public void handleMessage(Message msg) {
  if (openCount == 0 || (state != STATE_OPENED && state != STATE_OPENED_WITH_KEYS)) {
    return;
  }
  switch (msg.what) {
    case MediaDrm.EVENT_KEY_REQUIRED:
      postKeyRequest();
      return;
    case MediaDrm.EVENT_KEY_EXPIRED:
      state = STATE_OPENED;
      onError(new KeysExpiredException());
      return;
    case MediaDrm.EVENT_PROVISION_REQUIRED:
      state = STATE_OPENED;
      postProvisionRequest();
      return;
  }
}
项目:PlusGram    文件: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();
    }
  };
}
项目:Exoplayer2Radio    文件:DefaultDrmSessionManager.java   
@SuppressWarnings("deprecation")
@Override
public void handleMessage(Message msg) {
  if (openCount == 0 || (state != STATE_OPENED && state != STATE_OPENED_WITH_KEYS)) {
    return;
  }
  switch (msg.what) {
    case MediaDrm.EVENT_KEY_REQUIRED:
      doLicense();
      break;
    case MediaDrm.EVENT_KEY_EXPIRED:
      // When an already expired key is loaded MediaDrm sends this event immediately. Ignore
      // this event if the state isn't STATE_OPENED_WITH_KEYS yet which means we're still
      // waiting for key response.
      if (state == STATE_OPENED_WITH_KEYS) {
        state = STATE_OPENED;
        onError(new KeysExpiredException());
      }
      break;
    case MediaDrm.EVENT_PROVISION_REQUIRED:
      state = STATE_OPENED;
      postProvisionRequest();
      break;
  }
}
项目:Exoplayer2Radio    文件: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();
    }
  };
}
项目:miku    文件:StreamingDrmSessionManager.java   
@Override
public void handleMessage(Message msg) {
  if (openCount == 0 || (state != STATE_OPENED && state != STATE_OPENED_WITH_KEYS)) {
    return;
  }
  switch (msg.what) {
    case MediaDrm.EVENT_KEY_REQUIRED:
      postKeyRequest();
      return;
    case MediaDrm.EVENT_KEY_EXPIRED:
      state = STATE_OPENED;
      onError(new KeysExpiredException());
      return;
    case MediaDrm.EVENT_PROVISION_REQUIRED:
      state = STATE_OPENED;
      postProvisionRequest();
      return;
  }
}
项目:K-Sonic    文件:DefaultDrmSessionManager.java   
@SuppressWarnings("deprecation")
@Override
public void handleMessage(Message msg) {
  if (openCount == 0 || (state != STATE_OPENED && state != STATE_OPENED_WITH_KEYS)) {
    return;
  }
  switch (msg.what) {
    case MediaDrm.EVENT_KEY_REQUIRED:
      doLicense();
      break;
    case MediaDrm.EVENT_KEY_EXPIRED:
      // When an already expired key is loaded MediaDrm sends this event immediately. Ignore
      // this event if the state isn't STATE_OPENED_WITH_KEYS yet which means we're still
      // waiting for key response.
      if (state == STATE_OPENED_WITH_KEYS) {
        state = STATE_OPENED;
        onError(new KeysExpiredException());
      }
      break;
    case MediaDrm.EVENT_PROVISION_REQUIRED:
      state = STATE_OPENED;
      postProvisionRequest();
      break;
  }
}
项目: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();
    }
  };
}
项目:ExoPlayer-Demo    文件:StreamingDrmSessionManager.java   
@SuppressWarnings("deprecation")
@Override
public void handleMessage(Message msg) {
  if (openCount == 0 || (state != STATE_OPENED && state != STATE_OPENED_WITH_KEYS)) {
    return;
  }
  switch (msg.what) {
    case MediaDrm.EVENT_KEY_REQUIRED:
      postKeyRequest();
      return;
    case MediaDrm.EVENT_KEY_EXPIRED:
      state = STATE_OPENED;
      onError(new KeysExpiredException());
      return;
    case MediaDrm.EVENT_PROVISION_REQUIRED:
      state = STATE_OPENED;
      postProvisionRequest();
      return;
  }
}
项目:videoPickPlayer    文件:StreamingDrmSessionManager.java   
@SuppressWarnings("deprecation")
@Override
public void handleMessage(Message msg) {
  if (openCount == 0 || (state != STATE_OPENED && state != STATE_OPENED_WITH_KEYS)) {
    return;
  }
  switch (msg.what) {
    case MediaDrm.EVENT_KEY_REQUIRED:
      postKeyRequest();
      return;
    case MediaDrm.EVENT_KEY_EXPIRED:
      state = STATE_OPENED;
      onError(new KeysExpiredException());
      return;
    case MediaDrm.EVENT_PROVISION_REQUIRED:
      state = STATE_OPENED;
      postProvisionRequest();
      return;
  }
}
项目:videoPickPlayer    文件: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();
    }
  };
}
项目:HardwareLibrary    文件:BaseDrmInfo.java   
private static boolean getBooleanProperty(MediaDrm drm, String propertyName) {
    String property;
    try {
        property = drm.getPropertyString(propertyName);
    } catch (Exception exc) {
        property = null;
    }
    property = BaseDrmInfo.sanitize(property);

    if (TextUtils.isEmpty(property)) {
        return false;
    }

    property = property.toLowerCase();

    return "true".equals(property) || "1".equals(property) || "yes".equals(property) || Boolean.parseBoolean(property);
}
项目:android-exoplayer    文件:StreamingDrmSessionManager.java   
@Override
public void handleMessage(Message msg) {
  if (openCount == 0 || (state != STATE_OPENED && state != STATE_OPENED_WITH_KEYS)) {
    return;
  }
  switch (msg.what) {
    case MediaDrm.EVENT_KEY_REQUIRED:
      postKeyRequest();
      return;
    case MediaDrm.EVENT_KEY_EXPIRED:
      state = STATE_OPENED;
      postKeyRequest();
      return;
    case MediaDrm.EVENT_PROVISION_REQUIRED:
      state = STATE_OPENED;
      postProvisionRequest();
      return;
  }
}
项目:365browser    文件:MediaDrmBridge.java   
@TargetApi(Build.VERSION_CODES.M)
private void onSessionMessage(final SessionId sessionId, final MediaDrm.KeyRequest request) {
    if (!isNativeMediaDrmBridgeValid()) return;

    int requestType = MediaDrm.KeyRequest.REQUEST_TYPE_INITIAL;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        requestType = request.getRequestType();
    } else {
        // Prior to M, getRequestType() is not supported. Do our best guess here: Assume
        // requests with a URL are renewals and all others are initial requests.
        requestType = request.getDefaultUrl().isEmpty()
                ? MediaDrm.KeyRequest.REQUEST_TYPE_INITIAL
                : MediaDrm.KeyRequest.REQUEST_TYPE_RENEWAL;
    }

    nativeOnSessionMessage(
            mNativeMediaDrmBridge, sessionId.emeId(), requestType, request.getData());
}
项目:365browser    文件:MediaDrmBridge.java   
@Override
public void onKeyStatusChange(MediaDrm md, byte[] drmSessionId,
        final List<MediaDrm.KeyStatus> keyInformation, final boolean hasNewUsableKey) {
    final SessionId sessionId = getSessionIdByDrmId(drmSessionId);

    assert sessionId != null;
    assert mSessionManager.get(sessionId) != null;

    final boolean isKeyRelease =
            mSessionManager.get(sessionId).keyType() == MediaDrm.KEY_TYPE_RELEASE;

    deferEventHandleIfNeeded(sessionId, new Runnable() {
        @Override
        public void run() {
            Log.d(TAG,
                    "KeysStatusChange: " + sessionId.toHexString() + ", "
                            + hasNewUsableKey);
            onSessionKeysChange(sessionId, getKeysInfo(keyInformation).toArray(),
                    hasNewUsableKey, isKeyRelease);
        }
    });
}
项目:365browser    文件:MediaDrmBridge.java   
@Override
public void onExpirationUpdate(
        MediaDrm md, byte[] drmSessionId, final long expirationTime) {
    final SessionId sessionId = getSessionIdByDrmId(drmSessionId);

    assert sessionId != null;

    deferEventHandleIfNeeded(sessionId, new Runnable() {
        @Override
        public void run() {
            Log.d(TAG,
                    "ExpirationUpdate: " + sessionId.toHexString() + ", " + expirationTime);
            onSessionExpirationUpdate(sessionId, expirationTime);
        }
    });
}
项目:365browser    文件:MediaDrmBridge.java   
@Override
public void onResult(Boolean success) {
    if (!success) {
        onPromiseRejected(mPromiseId, "failed to update key after response accepted");
        return;
    }

    Log.d(TAG, "Key successfully %s for session %s", mIsKeyRelease ? "released" : "added",
            mSessionId.toHexString());
    onPromiseResolved(mPromiseId);

    if (!mIsKeyRelease && Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
        onSessionKeysChange(mSessionId,
                getDummyKeysInfo(MediaDrm.KeyStatus.STATUS_USABLE).toArray(), true,
                mIsKeyRelease);
    }
}
项目:transistor    文件:DashTestRunner.java   
@SuppressWarnings("ResourceType")
public static boolean isL1WidevineAvailable(String mimeType) {
  if (Util.SDK_INT >= 18) {
    try {
      // Force L3 if secure decoder is not available.
      if (MediaCodecUtil.getDecoderInfo(mimeType, true) == null) {
        return false;
      }
      MediaDrm mediaDrm = MediaDrmBuilder.build();
      String securityProperty = mediaDrm.getPropertyString(SECURITY_LEVEL_PROPERTY);
      mediaDrm.release();
      return WIDEVINE_SECURITY_LEVEL_1.equals(securityProperty);
    } catch (MediaCodecUtil.DecoderQueryException e) {
      throw new IllegalStateException(e);
    }
  }
  return false;
}
项目:transistor    文件:FrameworkMediaDrm.java   
@Override
public void setOnKeyStatusChangeListener(
    final ExoMediaDrm.OnKeyStatusChangeListener<? super FrameworkMediaCrypto> listener) {
  if (Util.SDK_INT < 23) {
    throw new UnsupportedOperationException();
  }

  mediaDrm.setOnKeyStatusChangeListener(listener == null ? null
      : new MediaDrm.OnKeyStatusChangeListener() {
        @Override
        public void onKeyStatusChange(@NonNull MediaDrm md, @NonNull byte[] sessionId,
            @NonNull List<MediaDrm.KeyStatus> keyInfo, boolean hasNewUsableKey) {
          List<KeyStatus> exoKeyInfo = new ArrayList<>();
          for (MediaDrm.KeyStatus keyStatus : keyInfo) {
            exoKeyInfo.add(new DefaultKeyStatus(keyStatus.getStatusCode(), keyStatus.getKeyId()));
          }
          listener.onKeyStatusChange(FrameworkMediaDrm.this, sessionId, exoKeyInfo,
              hasNewUsableKey);
        }
      }, null);
}
项目:Exoplayer_VLC    文件:StreamingDrmSessionManager.java   
@Override
public void handleMessage(Message msg) {
  if (openCount == 0 || (state != STATE_OPENED && state != STATE_OPENED_WITH_KEYS)) {
    return;
  }
  switch (msg.what) {
    case MediaDrm.EVENT_KEY_REQUIRED:
      postKeyRequest();
      return;
    case MediaDrm.EVENT_KEY_EXPIRED:
      state = STATE_OPENED;
      postKeyRequest();
      return;
    case MediaDrm.EVENT_PROVISION_REQUIRED:
      state = STATE_OPENED;
      postProvisionRequest();
      return;
  }
}
项目:edx-app-android    文件:StreamingDrmSessionManager.java   
@Override
public void handleMessage(Message msg) {
  if (openCount == 0 || (state != STATE_OPENED && state != STATE_OPENED_WITH_KEYS)) {
    return;
  }
  switch (msg.what) {
    case MediaDrm.EVENT_KEY_REQUIRED:
      postKeyRequest();
      return;
    case MediaDrm.EVENT_KEY_EXPIRED:
      state = STATE_OPENED;
      postKeyRequest();
      return;
    case MediaDrm.EVENT_PROVISION_REQUIRED:
      state = STATE_OPENED;
      postProvisionRequest();
      return;
  }
}
项目:ExoPlayer    文件:StreamingDrmSessionManager.java   
@Override
public void handleMessage(Message msg) {
  if (openCount == 0 || (state != STATE_OPENED && state != STATE_OPENED_WITH_KEYS)) {
    return;
  }
  switch (msg.what) {
    case MediaDrm.EVENT_KEY_REQUIRED:
      postKeyRequest();
      return;
    case MediaDrm.EVENT_KEY_EXPIRED:
      state = STATE_OPENED;
      onError(new KeysExpiredException());
      return;
    case MediaDrm.EVENT_PROVISION_REQUIRED:
      state = STATE_OPENED;
      postProvisionRequest();
      return;
  }
}
项目:android-chromium-view    文件:MediaDrmBridge.java   
@Override
public void onEvent(MediaDrm mediaDrm, byte[] sessionId, int event, int extra,
        byte[] data) {
    switch(event) {
        case MediaDrm.EVENT_PROVISION_REQUIRED:
            Log.d(TAG, "MediaDrm.EVENT_PROVISION_REQUIRED.");
            MediaDrm.ProvisionRequest request = mMediaDrm.getProvisionRequest();
            PostRequestTask postTask = new PostRequestTask(request.getData());
            postTask.execute(request.getDefaultUrl());
            break;
        case MediaDrm.EVENT_KEY_REQUIRED:
            generateKeyRequest(data, mMimeType);
            break;
        case MediaDrm.EVENT_KEY_EXPIRED:
            onKeyError();
            break;
        case MediaDrm.EVENT_VENDOR_DEFINED:
            assert(false);
            break;
        default:
            Log.e(TAG, "Invalid DRM event " + (int)event);
            return;
    }
}
项目:chromium_webview    文件:MediaDrmBridge.java   
private MediaDrmBridge(UUID schemeUUID, long nativeMediaDrmBridge, boolean singleSessionMode)
        throws android.media.UnsupportedSchemeException {
    mSchemeUUID = schemeUUID;
    mMediaDrm = new MediaDrm(schemeUUID);
    mNativeMediaDrmBridge = nativeMediaDrmBridge;
    mHandler = new Handler();
    mSingleSessionMode = singleSessionMode;
    mSessionIds = new HashMap<ByteBuffer, Integer>();
    mSessionMimeTypes = new HashMap<ByteBuffer, String>();
    mPendingCreateSessionDataQueue = new ArrayDeque<PendingCreateSessionData>();
    mResetDeviceCredentialsPending = false;
    mProvisioningPending = false;

    mMediaDrm.setOnEventListener(new MediaDrmListener());
    mMediaDrm.setPropertyString(PRIVACY_MODE, ENABLE);
    if (!mSingleSessionMode) {
        mMediaDrm.setPropertyString(SESSION_SHARING, ENABLE);
    }

    // We could open a MediaCrypto session here to support faster start of
    // clear lead (no need to wait for createSession()). But on
    // Android, memory and battery resources are precious and we should
    // only create a session when we are sure we'll use it.
    // TODO(xhwang): Investigate other options to support fast start.
}
项目:Telegram    文件:DefaultDrmSessionManager.java   
@SuppressWarnings("deprecation")
@Override
public void handleMessage(Message msg) {
  if (openCount == 0 || (state != STATE_OPENED && state != STATE_OPENED_WITH_KEYS)) {
    return;
  }
  switch (msg.what) {
    case MediaDrm.EVENT_KEY_REQUIRED:
      doLicense();
      break;
    case MediaDrm.EVENT_KEY_EXPIRED:
      // When an already expired key is loaded MediaDrm sends this event immediately. Ignore
      // this event if the state isn't STATE_OPENED_WITH_KEYS yet which means we're still
      // waiting for key response.
      if (state == STATE_OPENED_WITH_KEYS) {
        state = STATE_OPENED;
        onError(new KeysExpiredException());
      }
      break;
    case MediaDrm.EVENT_PROVISION_REQUIRED:
      state = STATE_OPENED;
      postProvisionRequest();
      break;
  }
}
项目:Telegram    文件: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();
    }
  };
}
项目:player-sdk-native-android    文件:OfflineDrmSessionManager.java   
OfflineDrmSessionManager(OfflineKeySetStorage storage) throws UnsupportedDrmException {

        mStorage = storage;

        try {
            mMediaDrm = new MediaDrm(WIDEVINE_UUID);
            OfflineDrmManager.printAllProperties(mMediaDrm);

            mMediaDrm.setOnEventListener(new MediaDrm.OnEventListener() {
                @Override
                public void onEvent(@NonNull MediaDrm md, byte[] sessionId, int event, int extra, byte[] data) {
                    Log.d(TAG, "onEvent:" + toHexString(sessionId) + ":" + event + ":" + extra + ":" + toHexString(data));
                }
            });


            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                setOnKeyStatusChangeListener();
            }


        } catch (UnsupportedSchemeException e) {
            throw new UnsupportedDrmException(UnsupportedDrmException.REASON_UNSUPPORTED_SCHEME, e);
        }
    }
项目:player-sdk-native-android    文件:KExoPlayer.java   
public static Set<KMediaFormat> supportedFormats(Context context) {
    Set<KMediaFormat> set = new HashSet<>();
    // Clear dash and mp4 are always supported by this player.
    set.add(KMediaFormat.dash_clear);
    set.add(KMediaFormat.mp4_clear);
    set.add(KMediaFormat.hls_clear);

    // Encrypted dash is only supported in Android v4.3 and up -- needs MediaDrm class.
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
        // Make sure Widevine is supported.
        if (MediaDrm.isCryptoSchemeSupported(ExoplayerUtil.WIDEVINE_UUID)) {
            set.add(KMediaFormat.dash_widevine);
        }
    }
    return set;
}
项目:airgram    文件:StreamingDrmSessionManager.java   
private void postKeyRequest() {
  KeyRequest keyRequest;
  try {
    keyRequest = mediaDrm.getKeyRequest(sessionId, schemeInitData.data, schemeInitData.mimeType,
        MediaDrm.KEY_TYPE_STREAMING, optionalKeyRequestParameters);
    postRequestHandler.obtainMessage(MSG_KEYS, keyRequest).sendToTarget();
  } catch (NotProvisionedException e) {
    onKeysError(e);
  }
}
项目:PlusGram    文件:StreamingDrmSessionManager.java   
private void postKeyRequest() {
  KeyRequest keyRequest;
  try {
    keyRequest = mediaDrm.getKeyRequest(sessionId, schemeInitData.data, schemeInitData.mimeType,
        MediaDrm.KEY_TYPE_STREAMING, optionalKeyRequestParameters);
    postRequestHandler.obtainMessage(MSG_KEYS, keyRequest).sendToTarget();
  } catch (NotProvisionedException e) {
    onKeysError(e);
  }
}
项目:PlusGram    文件:FrameworkMediaDrm.java   
@Override
public void setOnEventListener(
    final OnEventListener<? super FrameworkMediaCrypto> listener) {
  mediaDrm.setOnEventListener(listener == null ? null : new MediaDrm.OnEventListener() {
    @Override
    public void onEvent(MediaDrm md, byte[] sessionId, int event, int extra, byte[] data) {
      listener.onEvent(FrameworkMediaDrm.this, sessionId, event, extra, data);
    }
  });
}
项目:PlusGram    文件:FrameworkMediaDrm.java   
@Override
public ProvisionRequest getProvisionRequest() {
  final MediaDrm.ProvisionRequest provisionRequest = mediaDrm.getProvisionRequest();
  return new ProvisionRequest() {
    @Override
    public byte[] getData() {
      return provisionRequest.getData();
    }

    @Override
    public String getDefaultUrl() {
      return provisionRequest.getDefaultUrl();
    }
  };
}
项目:Exoplayer2Radio    文件:FrameworkMediaDrm.java   
@Override
public void setOnEventListener(
    final ExoMediaDrm.OnEventListener<? super FrameworkMediaCrypto> listener) {
  mediaDrm.setOnEventListener(listener == null ? null : new MediaDrm.OnEventListener() {
    @Override
    public void onEvent(@NonNull MediaDrm md, byte[] sessionId, int event, int extra,
        byte[] data) {
      listener.onEvent(FrameworkMediaDrm.this, sessionId, event, extra, data);
    }
  });
}
项目:Exoplayer2Radio    文件:FrameworkMediaDrm.java   
@Override
public ProvisionRequest getProvisionRequest() {
  final MediaDrm.ProvisionRequest provisionRequest = mediaDrm.getProvisionRequest();
  return new ProvisionRequest() {
    @Override
    public byte[] getData() {
      return provisionRequest.getData();
    }

    @Override
    public String getDefaultUrl() {
      return provisionRequest.getDefaultUrl();
    }
  };
}
项目:miku    文件:StreamingDrmSessionManager.java   
private void postKeyRequest() {
  KeyRequest keyRequest;
  try {
    keyRequest = mediaDrm.getKeyRequest(sessionId, schemeData, mimeType,
        MediaDrm.KEY_TYPE_STREAMING, optionalKeyRequestParameters);
    postRequestHandler.obtainMessage(MSG_KEYS, keyRequest).sendToTarget();
  } catch (NotProvisionedException e) {
    onKeysError(e);
  }
}
项目:K-Sonic    文件:FrameworkMediaDrm.java   
@Override
public void setOnEventListener(
    final ExoMediaDrm.OnEventListener<? super FrameworkMediaCrypto> listener) {
  mediaDrm.setOnEventListener(listener == null ? null : new MediaDrm.OnEventListener() {
    @Override
    public void onEvent(MediaDrm md, byte[] sessionId, int event, int extra, byte[] data) {
      listener.onEvent(FrameworkMediaDrm.this, sessionId, event, extra, data);
    }
  });
}
项目:K-Sonic    文件:FrameworkMediaDrm.java   
@Override
public ProvisionRequest getProvisionRequest() {
  final MediaDrm.ProvisionRequest provisionRequest = mediaDrm.getProvisionRequest();
  return new ProvisionRequest() {
    @Override
    public byte[] getData() {
      return provisionRequest.getData();
    }

    @Override
    public String getDefaultUrl() {
      return provisionRequest.getDefaultUrl();
    }
  };
}
项目:ExoPlayer-Demo    文件:StreamingDrmSessionManager.java   
private void postKeyRequest() {
  KeyRequest keyRequest;
  try {
    keyRequest = mediaDrm.getKeyRequest(sessionId, schemeInitData.data, schemeInitData.mimeType,
        MediaDrm.KEY_TYPE_STREAMING, optionalKeyRequestParameters);
    postRequestHandler.obtainMessage(MSG_KEYS, keyRequest).sendToTarget();
  } catch (NotProvisionedException e) {
    onKeysError(e);
  }
}
项目:videoPickPlayer    文件:StreamingDrmSessionManager.java   
private void postKeyRequest() {
  KeyRequest keyRequest;
  try {
    keyRequest = mediaDrm.getKeyRequest(sessionId, schemeData.data, schemeData.mimeType,
        MediaDrm.KEY_TYPE_STREAMING, optionalKeyRequestParameters);
    postRequestHandler.obtainMessage(MSG_KEYS, keyRequest).sendToTarget();
  } catch (NotProvisionedException e) {
    onKeysError(e);
  }
}