mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
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
This commit is contained in:
parent
0989f272f2
commit
e228947831
1 changed files with 35 additions and 35 deletions
|
|
@ -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
|
||||||
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
|
||||||
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];
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue