com.google.android.exoplayer.chunk.MultiTrackChunkSource Java Examples

The following examples show how to use com.google.android.exoplayer.chunk.MultiTrackChunkSource. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: VideoPlayer.java    From iview-android-tv with MIT License 6 votes vote down vote up
private void pushTrackSelection(int type, boolean allowRendererEnable) {
    if (multiTrackSources == null) {
        return;
    }

    int trackIndex = selectedTracks[type];
    if (trackIndex == DISABLED_TRACK) {
        player.setRendererEnabled(type, false);
    } else if (multiTrackSources[type] == null) {
        player.setRendererEnabled(type, allowRendererEnable);
    } else {
        boolean playWhenReady = player.getPlayWhenReady();
        player.setPlayWhenReady(false);
        player.setRendererEnabled(type, false);
        player.sendMessage(multiTrackSources[type], MultiTrackChunkSource.MSG_SELECT_TRACK,
                trackIndex);
        player.setRendererEnabled(type, allowRendererEnable);
        player.setPlayWhenReady(playWhenReady);
    }
}
 
Example #2
Source File: DemoPlayer.java    From Exoplayer_VLC with Apache License 2.0 6 votes vote down vote up
private void pushTrackSelection(int type, boolean allowRendererEnable) {
  if (rendererBuildingState != RENDERER_BUILDING_STATE_BUILT) {
    return;
  }

  int trackIndex = selectedTracks[type];
  if (trackIndex == DISABLED_TRACK) {
    player.setRendererEnabled(type, false);
  } else if (multiTrackSources[type] == null) {
    player.setRendererEnabled(type, allowRendererEnable);
  } else {
    boolean playWhenReady = player.getPlayWhenReady();
    player.setPlayWhenReady(false);
    player.setRendererEnabled(type, false);
    player.sendMessage(multiTrackSources[type], MultiTrackChunkSource.MSG_SELECT_TRACK,
        trackIndex);
    player.setRendererEnabled(type, allowRendererEnable);
    player.setPlayWhenReady(playWhenReady);
  }
}
 
Example #3
Source File: DemoPlayer.java    From Mobilyzer with Apache License 2.0 6 votes vote down vote up
private void pushTrackSelection(int type, boolean allowRendererEnable) {
  if (rendererBuildingState != RENDERER_BUILDING_STATE_BUILT) {
    return;
  }

  int trackIndex = selectedTracks[type];
  if (trackIndex == DISABLED_TRACK) {
    player.setRendererEnabled(type, false);
  } else if (multiTrackSources[type] == null) {
    player.setRendererEnabled(type, allowRendererEnable);
  } else {
    boolean playWhenReady = player.getPlayWhenReady();
    player.setPlayWhenReady(false);
    player.setRendererEnabled(type, false);
    player.sendMessage(multiTrackSources[type], MultiTrackChunkSource.MSG_SELECT_TRACK,
        trackIndex);
    player.setRendererEnabled(type, allowRendererEnable);
    player.setPlayWhenReady(playWhenReady);
  }
}
 
Example #4
Source File: VideoPlayer.java    From iview-android-tv with MIT License 5 votes vote down vote up
/**
   * Invoked with the results from a {@link RendererBuilder}.
   *
   * @param trackNames        The names of the available tracks, indexed by {@link VideoPlayer} TYPE_*
   *                          constants. May be null if the track names are unknown. An individual element may be null
   *                          if the track names are unknown for the corresponding type.
   * @param multiTrackSources Sources capable of switching between multiple available tracks,
   *                          indexed by {@link VideoPlayer} TYPE_* constants. May be null if there are no types with
   *                          multiple tracks. An individual element may be null if it does not have multiple tracks.
   * @param renderers         Renderers indexed by {@link VideoPlayer} TYPE_* constants. An individual
   *                          element may be null if there do not exist tracks of the corresponding type.
   * @param bandwidthMeter    Provides an estimate of the currently available bandwidth. May be null.
   */
/* package */ void onRenderers(String[][] trackNames,
                               MultiTrackChunkSource[] multiTrackSources, TrackRenderer[] renderers,
                               BandwidthMeter bandwidthMeter) {
      // Normalize the results.
      if (trackNames == null) {
          trackNames = new String[RENDERER_COUNT][];
      }
      if (multiTrackSources == null) {
          multiTrackSources = new MultiTrackChunkSource[RENDERER_COUNT];
      }
      for (int rendererIndex = 0; rendererIndex < RENDERER_COUNT; rendererIndex++) {
          if (renderers[rendererIndex] == null) {
              // Convert a null renderer to a dummy renderer.
              renderers[rendererIndex] = new DummyTrackRenderer();
          }
          if (trackNames[rendererIndex] == null) {
              // Convert a null trackNames to an array of suitable length.
              int trackCount = multiTrackSources[rendererIndex] != null
                      ? multiTrackSources[rendererIndex].getTrackCount() : 1;
              trackNames[rendererIndex] = new String[trackCount];
          }
      }
      // Complete preparation.
      this.trackNames = trackNames;
      this.videoRenderer = renderers[TYPE_VIDEO];
      this.codecCounters = videoRenderer instanceof MediaCodecTrackRenderer
              ? ((MediaCodecTrackRenderer) videoRenderer).codecCounters
              : renderers[TYPE_AUDIO] instanceof MediaCodecTrackRenderer
              ? ((MediaCodecTrackRenderer) renderers[TYPE_AUDIO]).codecCounters : null;
      this.multiTrackSources = multiTrackSources;
      this.bandwidthMeter = bandwidthMeter;
      pushSurface(false);
      pushTrackSelection(TYPE_VIDEO, true);
      pushTrackSelection(TYPE_AUDIO, true);
      pushTrackSelection(TYPE_TEXT, true);
      player.prepare(renderers);
      rendererBuildingState = RENDERER_BUILDING_STATE_BUILT;
  }
 
Example #5
Source File: DemoPlayer.java    From Exoplayer_VLC with Apache License 2.0 5 votes vote down vote up
void onRenderers(String[][] trackNames,
    MultiTrackChunkSource[] multiTrackSources, TrackRenderer[] renderers) {
  builderCallback = null;
  // Normalize the results.
  if (trackNames == null) {
    trackNames = new String[RENDERER_COUNT][];
  }
  if (multiTrackSources == null) {
    multiTrackSources = new MultiTrackChunkSource[RENDERER_COUNT];
  }
  for (int i = 0; i < RENDERER_COUNT; i++) {
    if (renderers[i] == null) {
      // Convert a null renderer to a dummy renderer.
      renderers[i] = new DummyTrackRenderer();
    } else if (trackNames[i] == null) {
      // We have a renderer so we must have at least one track, but the names are unknown.
      // Initialize the correct number of null track names.
      int trackCount = multiTrackSources[i] == null ? 1 : multiTrackSources[i].getTrackCount();
      trackNames[i] = new String[trackCount];
    }
  }
  // Complete preparation.
  this.videoRenderer = renderers[TYPE_VIDEO];
  this.trackNames = trackNames;
  this.multiTrackSources = multiTrackSources;
  rendererBuildingState = RENDERER_BUILDING_STATE_BUILT;
  pushSurface(false);
  pushTrackSelection(TYPE_VIDEO, true);
  pushTrackSelection(TYPE_AUDIO, true);
  pushTrackSelection(TYPE_TEXT, true);
  player.prepare(renderers);
}
 
Example #6
Source File: DemoPlayer.java    From Exoplayer_VLC with Apache License 2.0 5 votes vote down vote up
@Override
public void onRenderers(String[][] trackNames, MultiTrackChunkSource[] multiTrackSources,
    TrackRenderer[] renderers) {
  if (!canceled) {
    DemoPlayer.this.onRenderers(trackNames, multiTrackSources, renderers);
  }
}
 
Example #7
Source File: DemoPlayer.java    From Mobilyzer with Apache License 2.0 5 votes vote down vote up
void onRenderers(String[][] trackNames,
    MultiTrackChunkSource[] multiTrackSources, TrackRenderer[] renderers) {
  builderCallback = null;
  // Normalize the results.
  if (trackNames == null) {
    trackNames = new String[RENDERER_COUNT][];
  }
  if (multiTrackSources == null) {
    multiTrackSources = new MultiTrackChunkSource[RENDERER_COUNT];
  }
  for (int i = 0; i < RENDERER_COUNT; i++) {
    if (renderers[i] == null) {
      // Convert a null renderer to a dummy renderer.
      renderers[i] = new DummyTrackRenderer();
    } else if (trackNames[i] == null) {
      // We have a renderer so we must have at least one track, but the names are unknown.
      // Initialize the correct number of null track names.
      int trackCount = multiTrackSources[i] == null ? 1 : multiTrackSources[i].getTrackCount();
      trackNames[i] = new String[trackCount];
    }
  }
  // Complete preparation.
  this.videoRenderer = renderers[TYPE_VIDEO];
  this.trackNames = trackNames;
  this.multiTrackSources = multiTrackSources;
  rendererBuildingState = RENDERER_BUILDING_STATE_BUILT;
  maybeReportPlayerState();
  pushSurfaceAndVideoTrack(false);
  pushTrackSelection(TYPE_AUDIO, true);
  pushTrackSelection(TYPE_TEXT, true);
  player.prepare(renderers);
  // silent the player
  player.sendMessage(renderers[TYPE_AUDIO], MediaCodecAudioTrackRenderer.MSG_SET_VOLUME, (float) 0.0);
}
 
Example #8
Source File: DemoPlayer.java    From Mobilyzer with Apache License 2.0 5 votes vote down vote up
@Override
public void onRenderers(String[][] trackNames, MultiTrackChunkSource[] multiTrackSources,
    TrackRenderer[] renderers) {
  if (!canceled) {
    DemoPlayer.this.onRenderers(trackNames, multiTrackSources, renderers);
  }
}
 
Example #9
Source File: DemoPlayer.java    From Exoplayer_VLC with Apache License 2.0 2 votes vote down vote up
/**
 * Invoked with the results from a {@link RendererBuilder}.
 *
 * @param trackNames The names of the available tracks, indexed by {@link DemoPlayer} TYPE_*
 *     constants. May be null if the track names are unknown. An individual element may be null
 *     if the track names are unknown for the corresponding type.
 * @param multiTrackSources Sources capable of switching between multiple available tracks,
 *     indexed by {@link DemoPlayer} TYPE_* constants. May be null if there are no types with
 *     multiple tracks. An individual element may be null if it does not have multiple tracks.
 * @param renderers Renderers indexed by {@link DemoPlayer} TYPE_* constants. An individual
 *     element may be null if there do not exist tracks of the corresponding type.
 */
void onRenderers(String[][] trackNames, MultiTrackChunkSource[] multiTrackSources,
    TrackRenderer[] renderers);
 
Example #10
Source File: DemoPlayer.java    From Mobilyzer with Apache License 2.0 2 votes vote down vote up
/**
 * Invoked with the results from a {@link RendererBuilder}.
 *
 * @param trackNames The names of the available tracks, indexed by {@link DemoPlayer} TYPE_*
 *     constants. May be null if the track names are unknown. An individual element may be null
 *     if the track names are unknown for the corresponding type.
 * @param multiTrackSources Sources capable of switching between multiple available tracks,
 *     indexed by {@link DemoPlayer} TYPE_* constants. May be null if there are no types with
 *     multiple tracks. An individual element may be null if it does not have multiple tracks.
 * @param renderers Renderers indexed by {@link DemoPlayer} TYPE_* constants. An individual
 *     element may be null if there do not exist tracks of the corresponding type.
 */
void onRenderers(String[][] trackNames, MultiTrackChunkSource[] multiTrackSources,
    TrackRenderer[] renderers);