下面列出了怎么用android.media.MediaDrmException的API类实例代码及写法,或者点击链接到github查看源代码。
@Before
public void setUp() throws MediaDrmException, MediaCryptoException {
frameworkMediaCrypto = FrameworkMediaCryptoFixture.aFrameworkMediaCrypto().build();
given(mediaDrm.openSession()).willReturn(SESSION_ID.asBytes());
localDrmSessionManager = new LocalDrmSessionManager(
KEY_SET_ID_TO_RESTORE,
mediaDrm,
DRM_SCHEME,
handler,
eventListener
);
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Test
public void givenOpeningSessionError_whenAcquiringSession_thenNotifiesErrorEventListenerOnHandler() throws MediaDrmException {
given(mediaDrm.openSession()).willThrow(new ResourceBusyException("resource is busy"));
localDrmSessionManager.acquireSession(IGNORED_LOOPER, IGNORED_DRM_DATA);
ArgumentCaptor<Runnable> argumentCaptor = ArgumentCaptor.forClass(Runnable.class);
verify(handler).post(argumentCaptor.capture());
argumentCaptor.getValue().run();
verify(eventListener).onDrmSessionManagerError(any(DrmSession.DrmSessionException.class));
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Test
public void givenOpeningSessionError_whenAcquiringSession_thenReturnsInvalidDrmSession() throws MediaDrmException {
ResourceBusyException resourceBusyException = new ResourceBusyException("resource is busy");
given(mediaDrm.openSession()).willThrow(resourceBusyException);
DrmSession<FrameworkMediaCrypto> drmSession = localDrmSessionManager.acquireSession(IGNORED_LOOPER, IGNORED_DRM_DATA);
assertThat(drmSession).isInstanceOf(InvalidDrmSession.class);
assertThat(drmSession.getError().getCause()).isEqualTo(resourceBusyException);
}
@Override
public byte[] openSession() throws MediaDrmException {
throw new MediaDrmException("Attempting to open a session using a dummy ExoMediaDrm.");
}
@Override
public byte[] openSession() throws MediaDrmException {
return mediaDrm.openSession();
}
@Override
public byte[] openSession() throws MediaDrmException {
return mediaDrm.openSession();
}
@Override
public byte[] openSession() throws MediaDrmException {
return mediaDrm.openSession();
}
@Override
public byte[] openSession() throws MediaDrmException {
return mediaDrm.openSession();
}
@Override
public byte[] openSession() throws MediaDrmException {
return mediaDrm.openSession();
}
/**
* @see MediaDrm#openSession()
*/
byte[] openSession() throws MediaDrmException;
/**
* @see MediaDrm#openSession()
*/
byte[] openSession() throws MediaDrmException;
/**
* @see MediaDrm#openSession()
*/
byte[] openSession() throws MediaDrmException;
/**
* @see MediaDrm#openSession()
*/
byte[] openSession() throws MediaDrmException;
/**
* @see MediaDrm#openSession()
*/
byte[] openSession() throws MediaDrmException;