diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java index 52bb084281..677c784fe5 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java @@ -367,10 +367,8 @@ public class DefaultDrmSessionManager implements DrmSe } } - DefaultDrmSession session = null; byte[] initData = null; String mimeType = null; - if (offlineLicenseKeySetId == null) { SchemeData data = getSchemeData(drmInitData, uuid); if (data == null) { @@ -389,8 +387,12 @@ public class DefaultDrmSessionManager implements DrmSe } } + DefaultDrmSession session; if (!multiSession) { - // Look for an existing session to use. + session = sessions.isEmpty() ? null : sessions.get(0); + } else { + // Only use an existing session if it has matching init data. + session = null; for (DefaultDrmSession existingSession : sessions) { if (existingSession.hasInitData(initData)) { session = existingSession;