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 9c8d254ed1..eaf1829d6a 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
@@ -114,6 +114,7 @@ public class PlayerActivity extends AppCompatActivity
public static final String DRM_KEY_REQUEST_PROPERTIES_EXTRA = "drm_key_request_properties";
public static final String DRM_MULTI_SESSION_EXTRA = "drm_multi_session";
public static final String PREFER_EXTENSION_DECODERS_EXTRA = "prefer_extension_decoders";
+ public static final String TUNNELING = "tunneling";
public static final String AD_TAG_URI_EXTRA = "ad_tag_uri";
// For backwards compatibility only.
public static final String DRM_SCHEME_UUID_EXTRA = "drm_scheme_uuid";
@@ -201,7 +202,13 @@ public class PlayerActivity extends AppCompatActivity
startWindow = savedInstanceState.getInt(KEY_WINDOW);
startPosition = savedInstanceState.getLong(KEY_POSITION);
} else {
- trackSelectorParameters = DefaultTrackSelector.Parameters.getDefaults(/* context= */ this);
+ DefaultTrackSelector.ParametersBuilder builder =
+ new DefaultTrackSelector.ParametersBuilder(/* context= */ this);
+ boolean tunneling = intent.getBooleanExtra(TUNNELING, false);
+ if (tunneling) {
+ builder.setTunnelingAudioSessionId(C.generateAudioSessionIdV21(/* context= */ this));
+ }
+ trackSelectorParameters = builder.build();
clearStartPosition();
}
}
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 77a588108f..11ed258c42 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
@@ -68,6 +68,7 @@ public class SampleChooserActivity extends AppCompatActivity
private SampleAdapter sampleAdapter;
private MenuItem preferExtensionDecodersMenuItem;
private MenuItem randomAbrMenuItem;
+ private MenuItem tunnelingMenuItem;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -125,6 +126,7 @@ public class SampleChooserActivity extends AppCompatActivity
preferExtensionDecodersMenuItem = menu.findItem(R.id.prefer_extension_decoders);
preferExtensionDecodersMenuItem.setVisible(useExtensionRenderers);
randomAbrMenuItem = menu.findItem(R.id.random_abr);
+ tunnelingMenuItem = menu.findItem(R.id.tunneling);
return true;
}
@@ -173,6 +175,7 @@ public class SampleChooserActivity extends AppCompatActivity
? PlayerActivity.ABR_ALGORITHM_RANDOM
: PlayerActivity.ABR_ALGORITHM_DEFAULT;
intent.putExtra(PlayerActivity.ABR_ALGORITHM_EXTRA, abrAlgorithm);
+ intent.putExtra(PlayerActivity.TUNNELING, isNonNullAndChecked(tunnelingMenuItem));
sample.addToIntent(intent);
startActivity(intent);
return true;
diff --git a/demos/main/src/main/res/menu/sample_chooser_menu.xml b/demos/main/src/main/res/menu/sample_chooser_menu.xml
index 9934e9db95..f95c0b6460 100644
--- a/demos/main/src/main/res/menu/sample_chooser_menu.xml
+++ b/demos/main/src/main/res/menu/sample_chooser_menu.xml
@@ -23,4 +23,8 @@
android:title="@string/random_abr"
android:checkable="true"
app:showAsAction="never"/>
+
diff --git a/demos/main/src/main/res/values/strings.xml b/demos/main/src/main/res/values/strings.xml
index acbc296df5..671303a522 100644
--- a/demos/main/src/main/res/values/strings.xml
+++ b/demos/main/src/main/res/values/strings.xml
@@ -71,4 +71,6 @@
Enable random ABR
+ Request multimedia tunneling
+