Commit e2289478 by tonihei Committed by Oliver Woodman

Check for failure cases in demo app before instantiating player and source.

Doing that in the current order may result in cases where we have a player
instance but a null media source and thus the next call to initializePlayer
will fail.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190765633
parent 0989f272
...@@ -265,12 +265,33 @@ public class PlayerActivity extends Activity ...@@ -265,12 +265,33 @@ public class PlayerActivity extends Activity
private void initializePlayer() { private void initializePlayer() {
if (player == null) { if (player == null) {
Intent intent = getIntent(); Intent intent = getIntent();
TrackSelection.Factory adaptiveTrackSelectionFactory = String action = intent.getAction();
new AdaptiveTrackSelection.Factory(BANDWIDTH_METER); Uri[] uris;
trackSelector = new DefaultTrackSelector(adaptiveTrackSelectionFactory); String[] extensions;
trackSelectionHelper = new TrackSelectionHelper(trackSelector, adaptiveTrackSelectionFactory); Parcelable[] manifestFilters;
lastSeenTrackGroupArray = null; if (ACTION_VIEW.equals(action)) {
eventLogger = new EventLogger(trackSelector); uris = new Uri[] {intent.getData()};
extensions = new String[] {intent.getStringExtra(EXTENSION_EXTRA)};
manifestFilters = new Parcelable[] {intent.getParcelableExtra(MANIFEST_FILTER_EXTRA)};
} else if (ACTION_VIEW_LIST.equals(action)) {
String[] uriStrings = intent.getStringArrayExtra(URI_LIST_EXTRA);
uris = new Uri[uriStrings.length];
for (int i = 0; i < uriStrings.length; i++) {
uris[i] = Uri.parse(uriStrings[i]);
}
extensions = intent.getStringArrayExtra(EXTENSION_LIST_EXTRA);
if (extensions == null) {
extensions = new String[uriStrings.length];
}
manifestFilters = intent.getParcelableArrayExtra(MANIFEST_FILTER_LIST_EXTRA);
} else {
showToast(getString(R.string.unexpected_intent_action, action));
return;
}
if (Util.maybeRequestReadExternalStoragePermission(this, uris)) {
// The player will be reinitialized if the permission is granted.
return;
}
DrmSessionManager<FrameworkMediaCrypto> drmSessionManager = null; DrmSessionManager<FrameworkMediaCrypto> drmSessionManager = null;
if (intent.hasExtra(DRM_SCHEME_EXTRA) || intent.hasExtra(DRM_SCHEME_UUID_EXTRA)) { if (intent.hasExtra(DRM_SCHEME_EXTRA) || intent.hasExtra(DRM_SCHEME_UUID_EXTRA)) {
...@@ -312,8 +333,14 @@ public class PlayerActivity extends Activity ...@@ -312,8 +333,14 @@ public class PlayerActivity extends Activity
DefaultRenderersFactory renderersFactory = DefaultRenderersFactory renderersFactory =
new DefaultRenderersFactory(this, extensionRendererMode); new DefaultRenderersFactory(this, extensionRendererMode);
player = TrackSelection.Factory adaptiveTrackSelectionFactory =
ExoPlayerFactory.newSimpleInstance(renderersFactory, trackSelector, drmSessionManager); new AdaptiveTrackSelection.Factory(BANDWIDTH_METER);
trackSelector = new DefaultTrackSelector(adaptiveTrackSelectionFactory);
trackSelectionHelper = new TrackSelectionHelper(trackSelector, adaptiveTrackSelectionFactory);
lastSeenTrackGroupArray = null;
eventLogger = new EventLogger(trackSelector);
player = ExoPlayerFactory.newSimpleInstance(renderersFactory, trackSelector);
player.addListener(new PlayerEventListener()); player.addListener(new PlayerEventListener());
player.addListener(eventLogger); player.addListener(eventLogger);
player.addMetadataOutput(eventLogger); player.addMetadataOutput(eventLogger);
...@@ -326,33 +353,6 @@ public class PlayerActivity extends Activity ...@@ -326,33 +353,6 @@ public class PlayerActivity extends Activity
debugViewHelper = new DebugTextViewHelper(player, debugTextView); debugViewHelper = new DebugTextViewHelper(player, debugTextView);
debugViewHelper.start(); debugViewHelper.start();
String action = intent.getAction();
Uri[] uris;
String[] extensions;
Parcelable[] manifestFilters;
if (ACTION_VIEW.equals(action)) {
uris = new Uri[] {intent.getData()};
extensions = new String[] {intent.getStringExtra(EXTENSION_EXTRA)};
manifestFilters = new Parcelable[] {intent.getParcelableExtra(MANIFEST_FILTER_EXTRA)};
} else if (ACTION_VIEW_LIST.equals(action)) {
String[] uriStrings = intent.getStringArrayExtra(URI_LIST_EXTRA);
uris = new Uri[uriStrings.length];
for (int i = 0; i < uriStrings.length; i++) {
uris[i] = Uri.parse(uriStrings[i]);
}
extensions = intent.getStringArrayExtra(EXTENSION_LIST_EXTRA);
if (extensions == null) {
extensions = new String[uriStrings.length];
}
manifestFilters = intent.getParcelableArrayExtra(MANIFEST_FILTER_LIST_EXTRA);
} else {
showToast(getString(R.string.unexpected_intent_action, action));
return;
}
if (Util.maybeRequestReadExternalStoragePermission(this, uris)) {
// The player will be reinitialized if the permission is granted.
return;
}
MediaSource[] mediaSources = new MediaSource[uris.length]; MediaSource[] mediaSources = new MediaSource[uris.length];
for (int i = 0; i < uris.length; i++) { for (int i = 0; i < uris.length; i++) {
ParcelableArray<?> manifestFilter = (ParcelableArray<?>) manifestFilters[i]; ParcelableArray<?> manifestFilter = (ParcelableArray<?>) manifestFilters[i];
......
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