Demo app repeatedly shows "audio/video not playable" toast

Solved by adding saving reference to previous TrackGroup. Toast only displayed
after TrackGroup changed.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152242954
This commit is contained in:
tonihei 2017-04-05 04:29:26 -07:00 committed by Oliver Woodman
parent 9bbc6d1071
commit 6caa3e795f

View file

@ -113,6 +113,7 @@ public class PlayerActivity extends Activity implements OnClickListener, ExoPlay
private TrackSelectionHelper trackSelectionHelper; private TrackSelectionHelper trackSelectionHelper;
private DebugTextViewHelper debugViewHelper; private DebugTextViewHelper debugViewHelper;
private boolean needRetrySource; private boolean needRetrySource;
private TrackGroupArray lastSeenTrackGroupArray;
private boolean shouldAutoPlay; private boolean shouldAutoPlay;
private int resumeWindow; private int resumeWindow;
@ -261,6 +262,7 @@ public class PlayerActivity extends Activity implements OnClickListener, ExoPlay
new AdaptiveTrackSelection.Factory(BANDWIDTH_METER); new AdaptiveTrackSelection.Factory(BANDWIDTH_METER);
trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory); trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);
trackSelectionHelper = new TrackSelectionHelper(trackSelector, videoTrackSelectionFactory); trackSelectionHelper = new TrackSelectionHelper(trackSelector, videoTrackSelectionFactory);
lastSeenTrackGroupArray = null;
player = ExoPlayerFactory.newSimpleInstance(this, trackSelector, new DefaultLoadControl(), player = ExoPlayerFactory.newSimpleInstance(this, trackSelector, new DefaultLoadControl(),
drmSessionManager, extensionRendererMode); drmSessionManager, extensionRendererMode);
player.addListener(this); player.addListener(this);
@ -479,8 +481,10 @@ public class PlayerActivity extends Activity implements OnClickListener, ExoPlay
} }
@Override @Override
@SuppressWarnings("ReferenceEquality")
public void onTracksChanged(TrackGroupArray trackGroups, TrackSelectionArray trackSelections) { public void onTracksChanged(TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {
updateButtonVisibilities(); updateButtonVisibilities();
if (trackGroups != lastSeenTrackGroupArray) {
MappedTrackInfo mappedTrackInfo = trackSelector.getCurrentMappedTrackInfo(); MappedTrackInfo mappedTrackInfo = trackSelector.getCurrentMappedTrackInfo();
if (mappedTrackInfo != null) { if (mappedTrackInfo != null) {
if (mappedTrackInfo.getTrackTypeRendererSupport(C.TRACK_TYPE_VIDEO) if (mappedTrackInfo.getTrackTypeRendererSupport(C.TRACK_TYPE_VIDEO)
@ -492,6 +496,8 @@ public class PlayerActivity extends Activity implements OnClickListener, ExoPlay
showToast(R.string.error_unsupported_audio); showToast(R.string.error_unsupported_audio);
} }
} }
lastSeenTrackGroupArray = trackGroups;
}
} }
// User controls // User controls