From 6caa3e795f527328ef873c344399241c861f0cfb Mon Sep 17 00:00:00 2001 From: tonihei Date: Wed, 5 Apr 2017 04:29:26 -0700 Subject: [PATCH] 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 --- .../exoplayer2/demo/PlayerActivity.java | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/demo/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demo/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java index e79e557827..5a812e6e62 100644 --- a/demo/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java +++ b/demo/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java @@ -113,6 +113,7 @@ public class PlayerActivity extends Activity implements OnClickListener, ExoPlay private TrackSelectionHelper trackSelectionHelper; private DebugTextViewHelper debugViewHelper; private boolean needRetrySource; + private TrackGroupArray lastSeenTrackGroupArray; private boolean shouldAutoPlay; private int resumeWindow; @@ -261,6 +262,7 @@ public class PlayerActivity extends Activity implements OnClickListener, ExoPlay new AdaptiveTrackSelection.Factory(BANDWIDTH_METER); trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory); trackSelectionHelper = new TrackSelectionHelper(trackSelector, videoTrackSelectionFactory); + lastSeenTrackGroupArray = null; player = ExoPlayerFactory.newSimpleInstance(this, trackSelector, new DefaultLoadControl(), drmSessionManager, extensionRendererMode); player.addListener(this); @@ -479,18 +481,22 @@ public class PlayerActivity extends Activity implements OnClickListener, ExoPlay } @Override + @SuppressWarnings("ReferenceEquality") public void onTracksChanged(TrackGroupArray trackGroups, TrackSelectionArray trackSelections) { updateButtonVisibilities(); - MappedTrackInfo mappedTrackInfo = trackSelector.getCurrentMappedTrackInfo(); - if (mappedTrackInfo != null) { - if (mappedTrackInfo.getTrackTypeRendererSupport(C.TRACK_TYPE_VIDEO) - == MappedTrackInfo.RENDERER_SUPPORT_UNSUPPORTED_TRACKS) { - showToast(R.string.error_unsupported_video); - } - if (mappedTrackInfo.getTrackTypeRendererSupport(C.TRACK_TYPE_AUDIO) - == MappedTrackInfo.RENDERER_SUPPORT_UNSUPPORTED_TRACKS) { - showToast(R.string.error_unsupported_audio); + if (trackGroups != lastSeenTrackGroupArray) { + MappedTrackInfo mappedTrackInfo = trackSelector.getCurrentMappedTrackInfo(); + if (mappedTrackInfo != null) { + if (mappedTrackInfo.getTrackTypeRendererSupport(C.TRACK_TYPE_VIDEO) + == MappedTrackInfo.RENDERER_SUPPORT_UNSUPPORTED_TRACKS) { + showToast(R.string.error_unsupported_video); + } + if (mappedTrackInfo.getTrackTypeRendererSupport(C.TRACK_TYPE_AUDIO) + == MappedTrackInfo.RENDERER_SUPPORT_UNSUPPORTED_TRACKS) { + showToast(R.string.error_unsupported_audio); + } } + lastSeenTrackGroupArray = trackGroups; } }