diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java
index 1dc56bfbc9..9c8d254ed1 100644
--- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java
+++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java
@@ -107,6 +107,7 @@ public class PlayerActivity extends AppCompatActivity
public static final String URI_EXTRA = "uri";
public static final String EXTENSION_EXTRA = "extension";
+ public static final String IS_LIVE_EXTRA = "is_live";
public static final String DRM_SCHEME_EXTRA = "drm_scheme";
public static final String DRM_LICENSE_URL_EXTRA = "drm_license_url";
diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/Sample.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/Sample.java
index 4497b9a984..40c20c298c 100644
--- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/Sample.java
+++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/Sample.java
@@ -23,6 +23,7 @@ import static com.google.android.exoplayer2.demo.PlayerActivity.DRM_MULTI_SESSIO
import static com.google.android.exoplayer2.demo.PlayerActivity.DRM_SCHEME_EXTRA;
import static com.google.android.exoplayer2.demo.PlayerActivity.DRM_SCHEME_UUID_EXTRA;
import static com.google.android.exoplayer2.demo.PlayerActivity.EXTENSION_EXTRA;
+import static com.google.android.exoplayer2.demo.PlayerActivity.IS_LIVE_EXTRA;
import static com.google.android.exoplayer2.demo.PlayerActivity.URI_EXTRA;
import android.content.Intent;
@@ -40,32 +41,38 @@ import java.util.UUID;
public static UriSample createFromIntent(Uri uri, Intent intent, String extrasKeySuffix) {
String extension = intent.getStringExtra(EXTENSION_EXTRA + extrasKeySuffix);
String adsTagUriString = intent.getStringExtra(AD_TAG_URI_EXTRA + extrasKeySuffix);
+ boolean isLive =
+ intent.getBooleanExtra(IS_LIVE_EXTRA + extrasKeySuffix, /* defaultValue= */ false);
Uri adTagUri = adsTagUriString != null ? Uri.parse(adsTagUriString) : null;
return new UriSample(
/* name= */ null,
- DrmInfo.createFromIntent(intent, extrasKeySuffix),
uri,
extension,
+ isLive,
+ DrmInfo.createFromIntent(intent, extrasKeySuffix),
adTagUri,
/* sphericalStereoMode= */ null);
}
public final Uri uri;
public final String extension;
+ public final boolean isLive;
public final DrmInfo drmInfo;
public final Uri adTagUri;
- public final String sphericalStereoMode;
+ @Nullable public final String sphericalStereoMode;
public UriSample(
String name,
- DrmInfo drmInfo,
Uri uri,
String extension,
+ boolean isLive,
+ DrmInfo drmInfo,
Uri adTagUri,
- String sphericalStereoMode) {
+ @Nullable String sphericalStereoMode) {
super(name);
this.uri = uri;
this.extension = extension;
+ this.isLive = isLive;
this.drmInfo = drmInfo;
this.adTagUri = adTagUri;
this.sphericalStereoMode = sphericalStereoMode;
@@ -74,12 +81,14 @@ import java.util.UUID;
@Override
public void addToIntent(Intent intent) {
intent.setAction(PlayerActivity.ACTION_VIEW).setData(uri);
+ intent.putExtra(PlayerActivity.IS_LIVE_EXTRA, isLive);
intent.putExtra(PlayerActivity.SPHERICAL_STEREO_MODE_EXTRA, sphericalStereoMode);
addPlayerConfigToIntent(intent, /* extrasKeySuffix= */ "");
}
public void addToPlaylistIntent(Intent intent, String extrasKeySuffix) {
intent.putExtra(PlayerActivity.URI_EXTRA + extrasKeySuffix, uri.toString());
+ intent.putExtra(PlayerActivity.IS_LIVE_EXTRA + extrasKeySuffix, isLive);
addPlayerConfigToIntent(intent, extrasKeySuffix);
}
diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java
index 3920cd3a80..77a588108f 100644
--- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java
+++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java
@@ -205,6 +205,9 @@ public class SampleChooserActivity extends AppCompatActivity
if (uriSample.drmInfo != null) {
return R.string.download_drm_unsupported;
}
+ if (uriSample.isLive) {
+ return R.string.download_live_unsupported;
+ }
if (uriSample.adTagUri != null) {
return R.string.download_ads_unsupported;
}
@@ -294,6 +297,7 @@ public class SampleChooserActivity extends AppCompatActivity
String sampleName = null;
Uri uri = null;
String extension = null;
+ boolean isLive = false;
String drmScheme = null;
String drmLicenseUrl = null;
String[] drmKeyRequestProperties = null;
@@ -318,6 +322,9 @@ public class SampleChooserActivity extends AppCompatActivity
case "drm_scheme":
drmScheme = reader.nextString();
break;
+ case "is_live":
+ isLive = reader.nextBoolean();
+ break;
case "drm_license_url":
drmLicenseUrl = reader.nextString();
break;
@@ -370,9 +377,10 @@ public class SampleChooserActivity extends AppCompatActivity
} else {
return new UriSample(
sampleName,
- drmInfo,
uri,
extension,
+ isLive,
+ drmInfo,
adTagUri != null ? Uri.parse(adTagUri) : null,
sphericalStereoMode);
}
@@ -486,7 +494,7 @@ public class SampleChooserActivity extends AppCompatActivity
ImageButton downloadButton = view.findViewById(R.id.download_button);
downloadButton.setTag(sample);
downloadButton.setColorFilter(
- canDownload ? (isDownloaded ? 0xFF42A5F5 : 0xFFBDBDBD) : 0xFFEEEEEE);
+ canDownload ? (isDownloaded ? 0xFF42A5F5 : 0xFFBDBDBD) : 0xFF666666);
downloadButton.setImageResource(
isDownloaded ? R.drawable.ic_download_done : R.drawable.ic_download);
}
diff --git a/demos/main/src/main/res/values/strings.xml b/demos/main/src/main/res/values/strings.xml
index c39fffa65d..acbc296df5 100644
--- a/demos/main/src/main/res/values/strings.xml
+++ b/demos/main/src/main/res/values/strings.xml
@@ -63,6 +63,8 @@
This demo app only supports downloading http streams
+ This demo app does not support downloading live content
+
IMA does not support offline ads
Prefer extension decoders