mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Rollback of d5482fe343
*** Original commit *** Don't call MediaDrm.setLogSessionId in FrameworkMediaDrm This method throws an UnsupportedOperationException on some Android 12 devices. *** PiperOrigin-RevId: 433708582
This commit is contained in:
parent
d0db1114c6
commit
50efd86619
@ -15,6 +15,8 @@
|
|||||||
*/
|
*/
|
||||||
package androidx.media3.exoplayer.drm;
|
package androidx.media3.exoplayer.drm;
|
||||||
|
|
||||||
|
import static androidx.media3.common.util.Assertions.checkNotNull;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.media.DeniedByServerException;
|
import android.media.DeniedByServerException;
|
||||||
import android.media.MediaCrypto;
|
import android.media.MediaCrypto;
|
||||||
@ -23,6 +25,7 @@ import android.media.MediaDrm;
|
|||||||
import android.media.MediaDrmException;
|
import android.media.MediaDrmException;
|
||||||
import android.media.NotProvisionedException;
|
import android.media.NotProvisionedException;
|
||||||
import android.media.UnsupportedSchemeException;
|
import android.media.UnsupportedSchemeException;
|
||||||
|
import android.media.metrics.LogSessionId;
|
||||||
import android.os.PersistableBundle;
|
import android.os.PersistableBundle;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import androidx.annotation.DoNotInline;
|
import androidx.annotation.DoNotInline;
|
||||||
@ -188,7 +191,13 @@ public final class FrameworkMediaDrm implements ExoMediaDrm {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setPlayerIdForSession(byte[] sessionId, PlayerId playerId) {
|
public void setPlayerIdForSession(byte[] sessionId, PlayerId playerId) {
|
||||||
// TODO(b/221032172): Implement this when CDM compatibility issues are resolved.
|
if (Util.SDK_INT >= 31) {
|
||||||
|
try {
|
||||||
|
Api31.setLogSessionIdOnMediaDrmSession(mediaDrm, sessionId, playerId);
|
||||||
|
} catch (UnsupportedOperationException e) {
|
||||||
|
Log.w(TAG, "setLogSessionId failed.");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return values of MediaDrm.KeyRequest.getRequestType are equal to KeyRequest.RequestType.
|
// Return values of MediaDrm.KeyRequest.getRequestType are equal to KeyRequest.RequestType.
|
||||||
@ -518,5 +527,16 @@ public final class FrameworkMediaDrm implements ExoMediaDrm {
|
|||||||
public static boolean requiresSecureDecoder(MediaDrm mediaDrm, String mimeType) {
|
public static boolean requiresSecureDecoder(MediaDrm mediaDrm, String mimeType) {
|
||||||
return mediaDrm.requiresSecureDecoder(mimeType);
|
return mediaDrm.requiresSecureDecoder(mimeType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@DoNotInline
|
||||||
|
public static void setLogSessionIdOnMediaDrmSession(
|
||||||
|
MediaDrm mediaDrm, byte[] drmSessionId, PlayerId playerId) {
|
||||||
|
LogSessionId logSessionId = playerId.getLogSessionId();
|
||||||
|
if (!logSessionId.equals(LogSessionId.LOG_SESSION_ID_NONE)) {
|
||||||
|
MediaDrm.PlaybackComponent playbackComponent =
|
||||||
|
checkNotNull(mediaDrm.getPlaybackComponent(drmSessionId));
|
||||||
|
playbackComponent.setLogSessionId(logSessionId);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user