Migrate surfacedemo to new DRM APIs

PiperOrigin-RevId: 273296461
This commit is contained in:
andrewlewis 2019-10-07 16:25:42 +01:00 committed by Oliver Woodman
parent 8d7f474fa6
commit fed89d76ca

View File

@ -19,7 +19,6 @@ import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.Surface; import android.view.Surface;
import android.view.SurfaceControl; import android.view.SurfaceControl;
import android.view.SurfaceHolder; import android.view.SurfaceHolder;
@ -33,10 +32,9 @@ import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.SimpleExoPlayer; import com.google.android.exoplayer2.SimpleExoPlayer;
import com.google.android.exoplayer2.drm.DefaultDrmSessionManager; import com.google.android.exoplayer2.drm.DefaultDrmSessionManager;
import com.google.android.exoplayer2.drm.DrmSessionManager; import com.google.android.exoplayer2.drm.DrmSessionManager;
import com.google.android.exoplayer2.drm.FrameworkMediaCrypto; import com.google.android.exoplayer2.drm.ExoMediaCrypto;
import com.google.android.exoplayer2.drm.FrameworkMediaDrm; import com.google.android.exoplayer2.drm.FrameworkMediaDrm;
import com.google.android.exoplayer2.drm.HttpMediaDrmCallback; import com.google.android.exoplayer2.drm.HttpMediaDrmCallback;
import com.google.android.exoplayer2.drm.UnsupportedDrmException;
import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.ProgressiveMediaSource; import com.google.android.exoplayer2.source.ProgressiveMediaSource;
import com.google.android.exoplayer2.source.dash.DashMediaSource; import com.google.android.exoplayer2.source.dash.DashMediaSource;
@ -45,6 +43,7 @@ import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory; import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory;
import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.upstream.HttpDataSource;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.util.Util;
import java.util.UUID; import java.util.UUID;
@ -69,7 +68,6 @@ public final class MainActivity extends Activity {
@Nullable private SurfaceView currentOutputView; @Nullable private SurfaceView currentOutputView;
private static SimpleExoPlayer player; private static SimpleExoPlayer player;
private static FrameworkMediaDrm mediaDrm;
private static SurfaceControl surfaceControl; private static SurfaceControl surfaceControl;
private static Surface videoSurface; private static Surface videoSurface;
@ -172,10 +170,6 @@ public final class MainActivity extends Activity {
player.release(); player.release();
player = null; player = null;
} }
if (mediaDrm != null) {
mediaDrm.release();
mediaDrm = null;
}
} }
} }
@ -184,24 +178,20 @@ public final class MainActivity extends Activity {
String action = intent.getAction(); String action = intent.getAction();
Uri uri = ACTION_VIEW.equals(action) ? intent.getData() : Uri.parse(DEFAULT_MEDIA_URI); Uri uri = ACTION_VIEW.equals(action) ? intent.getData() : Uri.parse(DEFAULT_MEDIA_URI);
String userAgent = Util.getUserAgent(this, getString(R.string.application_name)); String userAgent = Util.getUserAgent(this, getString(R.string.application_name));
DrmSessionManager<FrameworkMediaCrypto> drmSessionManager = DrmSessionManager<ExoMediaCrypto> drmSessionManager;
DrmSessionManager.getDummyDrmSessionManager();
if (intent.hasExtra(DRM_SCHEME_EXTRA)) { if (intent.hasExtra(DRM_SCHEME_EXTRA)) {
String drmLicenseUrl = intent.getStringExtra(DRM_LICENSE_URL_EXTRA); String drmScheme = Assertions.checkNotNull(intent.getStringExtra(DRM_SCHEME_EXTRA));
try { String drmLicenseUrl = Assertions.checkNotNull(intent.getStringExtra(DRM_LICENSE_URL_EXTRA));
UUID drmSchemeUuid = Util.getDrmUuid(intent.getStringExtra(DRM_SCHEME_EXTRA)); UUID drmSchemeUuid = Assertions.checkNotNull(Util.getDrmUuid(drmScheme));
HttpDataSource.Factory licenseDataSourceFactory = HttpDataSource.Factory licenseDataSourceFactory = new DefaultHttpDataSourceFactory(userAgent);
new DefaultHttpDataSourceFactory(userAgent); HttpMediaDrmCallback drmCallback =
HttpMediaDrmCallback drmCallback = new HttpMediaDrmCallback(drmLicenseUrl, licenseDataSourceFactory);
new HttpMediaDrmCallback(drmLicenseUrl, licenseDataSourceFactory); drmSessionManager =
mediaDrm = FrameworkMediaDrm.newInstance(drmSchemeUuid); new DefaultDrmSessionManager.Builder()
drmSessionManager = .setUuidAndExoMediaDrmProvider(drmSchemeUuid, FrameworkMediaDrm.DEFAULT_PROVIDER)
new DefaultDrmSessionManager<>( .build(drmCallback);
drmSchemeUuid, mediaDrm, drmCallback, /* optionalKeyRequestParameters= */ null); } else {
} catch (UnsupportedDrmException e) { drmSessionManager = DrmSessionManager.getDummyDrmSessionManager();
Log.e(TAG, "Unsupported DRM scheme", e);
return;
}
} }
DataSource.Factory dataSourceFactory = DataSource.Factory dataSourceFactory =