mirror of
https://github.com/mediathekview/zapp.git
synced 2024-09-19 20:02:17 +02:00
List stream qualities WIP
This commit is contained in:
parent
6ab6f817cb
commit
935b42c88f
@ -34,7 +34,6 @@ import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection;
|
||||
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelection;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelector;
|
||||
import com.google.android.exoplayer2.ui.SimpleExoPlayerView;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
|
||||
@ -52,7 +51,8 @@ import de.christinecoenen.code.zapp.model.json.SortableJsonChannelList;
|
||||
import de.christinecoenen.code.zapp.utils.ColorHelper;
|
||||
import de.christinecoenen.code.zapp.utils.MultiWindowHelper;
|
||||
import de.christinecoenen.code.zapp.utils.ShortcutHelper;
|
||||
import de.christinecoenen.code.zapp.utils.VideoErrorHandler;
|
||||
import de.christinecoenen.code.zapp.utils.video.TrackHelper;
|
||||
import de.christinecoenen.code.zapp.utils.video.VideoErrorHandler;
|
||||
import de.christinecoenen.code.zapp.utils.view.ClickableViewPager;
|
||||
import de.christinecoenen.code.zapp.utils.view.FullscreenActivity;
|
||||
import de.christinecoenen.code.zapp.views.ProgramInfoViewBase;
|
||||
@ -93,6 +93,8 @@ public class ChannelDetailActivity extends FullscreenActivity implements
|
||||
private final Handler playHandler = new Handler();
|
||||
private final VideoErrorHandler videoErrorHandler = new VideoErrorHandler(this);
|
||||
private SimpleExoPlayer player;
|
||||
private DefaultTrackSelector trackSelector;
|
||||
private TrackHelper trackHelper;
|
||||
private DataSource.Factory dataSourceFactory;
|
||||
private ChannelDetailAdapter channelDetailAdapter;
|
||||
private ChannelModel currentChannel;
|
||||
@ -165,13 +167,14 @@ public class ChannelDetailActivity extends FullscreenActivity implements
|
||||
// player
|
||||
DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
|
||||
TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter);
|
||||
TrackSelector trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);
|
||||
trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);
|
||||
dataSourceFactory = new DefaultDataSourceFactory(this,
|
||||
Util.getUserAgent(this, getString(R.string.app_name)), bandwidthMeter);
|
||||
player = ExoPlayerFactory.newSimpleInstance(this, trackSelector);
|
||||
player.addListener(this);
|
||||
player.addListener(videoErrorHandler);
|
||||
videoView.setPlayer(player);
|
||||
trackHelper = new TrackHelper(player, trackSelector);
|
||||
|
||||
// pager
|
||||
channelDetailAdapter = new ChannelDetailAdapter(
|
||||
@ -300,6 +303,8 @@ public class ChannelDetailActivity extends FullscreenActivity implements
|
||||
Log.d(TAG, "media player rendering start");
|
||||
progressView.setVisibility(View.GONE);
|
||||
channelDetailAdapter.getCurrentFragment().onVideoStart();
|
||||
|
||||
trackHelper.printTrackInfo();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,69 @@
|
||||
package de.christinecoenen.code.zapp.utils.video;
|
||||
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.Format;
|
||||
import com.google.android.exoplayer2.RendererCapabilities;
|
||||
import com.google.android.exoplayer2.SimpleExoPlayer;
|
||||
import com.google.android.exoplayer2.source.TrackGroup;
|
||||
import com.google.android.exoplayer2.source.TrackGroupArray;
|
||||
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
|
||||
import com.google.android.exoplayer2.trackselection.FixedTrackSelection;
|
||||
import com.google.android.exoplayer2.trackselection.MappingTrackSelector;
|
||||
|
||||
public class TrackHelper {
|
||||
|
||||
private static final String TAG = TrackHelper.class.getSimpleName();
|
||||
|
||||
private final SimpleExoPlayer player;
|
||||
private final DefaultTrackSelector trackSelector;
|
||||
|
||||
public TrackHelper(SimpleExoPlayer player, DefaultTrackSelector trackSelector) {
|
||||
this.player = player;
|
||||
this.trackSelector = trackSelector;
|
||||
}
|
||||
|
||||
public void printTrackInfo() {
|
||||
MappingTrackSelector.MappedTrackInfo mappedTrackInfo = trackSelector.getCurrentMappedTrackInfo();
|
||||
if (mappedTrackInfo == null) {
|
||||
Log.d(TAG, "no track info available");
|
||||
return;
|
||||
}
|
||||
|
||||
for (int rendererIndex = 0; rendererIndex < mappedTrackInfo.length; rendererIndex++) {
|
||||
TrackGroupArray trackGroups = mappedTrackInfo.getTrackGroups(rendererIndex);
|
||||
int trackType = player.getRendererType(rendererIndex);
|
||||
|
||||
// only use video renderers
|
||||
if (trackType == C.TRACK_TYPE_VIDEO) {
|
||||
|
||||
Log.d(TAG, "renderer index: " + rendererIndex);
|
||||
|
||||
for (int groupIndex = 0; groupIndex < trackGroups.length; groupIndex++) {
|
||||
TrackGroup trackGroup = trackGroups.get(groupIndex);
|
||||
|
||||
|
||||
Log.d(TAG, "track group: " + groupIndex);
|
||||
for (int trackIndex = 0; trackIndex < trackGroup.length; trackIndex++) {
|
||||
Format format = trackGroup.getFormat(trackIndex);
|
||||
int support = mappedTrackInfo.getTrackFormatSupport(rendererIndex, groupIndex, trackIndex);
|
||||
|
||||
if (support == RendererCapabilities.FORMAT_HANDLED) {
|
||||
Log.d(TAG, Format.toLogString(format));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void switchToFixedTrack(DefaultTrackSelector trackSelector, int rendererIndex, int groupIndex, int trackIndex) {
|
||||
MappingTrackSelector.MappedTrackInfo mappedTrackInfo = trackSelector.getCurrentMappedTrackInfo();
|
||||
TrackGroupArray trackGroups = mappedTrackInfo.getTrackGroups(rendererIndex);
|
||||
|
||||
MappingTrackSelector.SelectionOverride override = new MappingTrackSelector.SelectionOverride(new FixedTrackSelection.Factory(), groupIndex, trackIndex);
|
||||
trackSelector.setSelectionOverride(rendererIndex, trackGroups, override);
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package de.christinecoenen.code.zapp.utils;
|
||||
package de.christinecoenen.code.zapp.utils.video;
|
||||
|
||||
import android.util.Log;
|
||||
|
Loading…
Reference in New Issue
Block a user