Commit 041a0696 by bachinger Committed by Oliver Woodman

remove UriBundle

PiperOrigin-RevId: 299361095
parent 26d3914e
......@@ -489,7 +489,9 @@ public class PlayerActivity extends AppCompatActivity
return null;
}
builder
.setDrmLicenseUri(createLicenseUriBundle(parameters.drmInfo))
.setDrmLicenseUri(parameters.drmInfo.drmLicenseUrl)
.setDrmLicenseRequestHeaders(
createLicenseHeaders(parameters.drmInfo.drmKeyRequestProperties))
.setDrmUuid(parameters.drmInfo.drmScheme)
.setDrmMultiSession(parameters.drmInfo.drmMultiSession);
drmSessionForClearTypes = parameters.drmInfo.drmSessionForClearTypes;
......@@ -509,16 +511,16 @@ public class PlayerActivity extends AppCompatActivity
.createMediaSource(builder.build());
}
private static MediaItem.UriBundle createLicenseUriBundle(Sample.DrmInfo drmInfo) {
Uri licenseUri = Uri.parse(drmInfo.drmLicenseUrl);
if (drmInfo.drmKeyRequestProperties == null || drmInfo.drmKeyRequestProperties.length == 0) {
return new MediaItem.UriBundle(licenseUri);
@Nullable
private Map<String, String> createLicenseHeaders(@Nullable String[] drmKeyRequestProperties) {
if (drmKeyRequestProperties == null || drmKeyRequestProperties.length == 0) {
return null;
}
Map<String, String> headers = new HashMap<>();
for (int i = 0; i < drmInfo.drmKeyRequestProperties.length; i += 2) {
headers.put(drmInfo.drmKeyRequestProperties[i], drmInfo.drmKeyRequestProperties[i + 1]);
for (int i = 0; i < drmKeyRequestProperties.length; i += 2) {
headers.put(drmKeyRequestProperties[i], drmKeyRequestProperties[i + 1]);
}
return new MediaItem.UriBundle(licenseUri, headers);
return headers;
}
private void releasePlayer() {
......
......@@ -280,9 +280,8 @@ public final class DefaultMediaSourceFactory implements MediaSourceFactory {
private MediaDrmCallback createHttpMediaDrmCallback(MediaItem.DrmConfiguration drmConfiguration) {
Assertions.checkNotNull(drmConfiguration.licenseUri);
HttpMediaDrmCallback drmCallback =
new HttpMediaDrmCallback(
drmConfiguration.licenseUri.uri.toString(), drmHttpDataSourceFactory);
for (Map.Entry<String, String> entry : drmConfiguration.licenseUri.requestHeaders.entrySet()) {
new HttpMediaDrmCallback(drmConfiguration.licenseUri.toString(), drmHttpDataSourceFactory);
for (Map.Entry<String, String> entry : drmConfiguration.requestHeaders.entrySet()) {
drmCallback.setKeyRequestProperty(entry.getKey(), entry.getValue());
}
return drmCallback;
......
......@@ -22,7 +22,9 @@ import android.net.Uri;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.offline.StreamKey;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import org.junit.runner.RunWith;
......@@ -79,19 +81,23 @@ public class MediaItemTest {
@Test
public void builderSetDrmConfig_setsAllProperties() {
MediaItem.UriBundle licenseUri = new MediaItem.UriBundle(Uri.parse(URI_STRING));
Uri licenseUri = Uri.parse(URI_STRING);
Map<String, String> requestHeaders = new HashMap<>();
requestHeaders.put("Referer", "http://www.google.com");
MediaItem mediaItem =
new MediaItem.Builder()
.setSourceUri(URI_STRING)
.setDrmUuid(C.WIDEVINE_UUID)
.setDrmLicenseUri(licenseUri)
.setDrmLicenseRequestHeaders(requestHeaders)
.setDrmMultiSession(/* multiSession= */ true)
.build();
assertThat(mediaItem.playbackProperties.drmConfiguration).isNotNull();
assertThat(mediaItem.playbackProperties.drmConfiguration.uuid).isEqualTo(C.WIDEVINE_UUID);
assertThat(mediaItem.playbackProperties.drmConfiguration.licenseUri).isEqualTo(licenseUri);
assertThat(mediaItem.playbackProperties.drmConfiguration.requestHeaders)
.isEqualTo(requestHeaders);
assertThat(mediaItem.playbackProperties.drmConfiguration.multiSession).isTrue();
}
......@@ -103,7 +109,7 @@ public class MediaItemTest {
new MediaItem.Builder()
.setSourceUri(URI_STRING)
// missing uuid
.setDrmLicenseUri(new MediaItem.UriBundle(Uri.parse(URI_STRING)))
.setDrmLicenseUri(Uri.parse(URI_STRING))
.build());
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment