Java 类com.google.android.exoplayer.chunk.MultiTrackChunkSource 实例源码

项目:miku    文件:MediaPlayer.java   
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);
  }
}
项目:sbs-android-tv    文件:VideoPlayer.java   
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);
    }
}
项目:AdvancedVideoView    文件:DemoPlayer.java   
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);
  }
}
项目:android-exoplayer    文件:DemoPlayer.java   
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);
  }
}
项目:iview-android-tv    文件:VideoPlayer.java   
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);
    }
}
项目:Exoplayer_VLC    文件:DemoPlayer.java   
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);
  }
}
项目:ExoPlayer    文件:DemoPlayer.java   
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);
  }
}
项目:ExoPlayerCompat    文件:ExoPlayerWrapper.java   
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);
  }
}
项目:sbs-android-tv    文件:VideoPlayer.java   
/**
   * 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;
  }
项目:AdvancedVideoView    文件:DemoPlayer.java   
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.trackNames = trackNames;
  this.videoRenderer = renderers[TYPE_VIDEO];
  this.multiTrackSources = multiTrackSources;
  pushSurface(false);
  pushTrackSelection(TYPE_VIDEO, true);
  pushTrackSelection(TYPE_AUDIO, true);
  pushTrackSelection(TYPE_TEXT, true);
  player.prepare(renderers);
  rendererBuildingState = RENDERER_BUILDING_STATE_BUILT;
}
项目:AdvancedVideoView    文件:DemoPlayer.java   
@Override
public void onRenderers(String[][] trackNames, MultiTrackChunkSource[] multiTrackSources,
    TrackRenderer[] renderers) {
  if (!canceled) {
    DemoPlayer.this.onRenderers(trackNames, multiTrackSources, renderers);
  }
}
项目:android-exoplayer    文件:DemoPlayer.java   
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;
  pushSurfaceAndVideoTrack(false);
  pushTrackSelection(TYPE_AUDIO, true);
  pushTrackSelection(TYPE_TEXT, true);
  player.prepare(renderers);
}
项目:android-exoplayer    文件:DemoPlayer.java   
@Override
public void onRenderers(String[][] trackNames, MultiTrackChunkSource[] multiTrackSources,
    TrackRenderer[] renderers) {
  if (!canceled) {
    DemoPlayer.this.onRenderers(trackNames, multiTrackSources, renderers);
  }
}
项目:exoPlayerHLS    文件:DemoPlayer.java   
void onRenderers(String[][] trackNames,
    MultiTrackChunkSource[] multiTrackSources, TrackRenderer[] renderers,
    BandwidthMeter bandwidthMeter) {
  builderCallback = null;
  // 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.bandwidthMeter = bandwidthMeter;
  pushSurface(false);
  player.prepare(renderers);
  rendererBuildingState = RENDERER_BUILDING_STATE_BUILT;
}
项目:exoPlayerHLS    文件:DemoPlayer.java   
@Override
public void onRenderers(String[][] trackNames, MultiTrackChunkSource[] multiTrackSources,
    TrackRenderer[] renderers, BandwidthMeter bandwidthMeter) {
  if (!canceled) {
    DemoPlayer.this.onRenderers(trackNames, multiTrackSources, renderers, bandwidthMeter);
  }
}
项目:iview-android-tv    文件:VideoPlayer.java   
/**
   * 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;
  }
项目:Exoplayer_VLC    文件:DemoPlayer.java   
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);
}
项目:Exoplayer_VLC    文件:DemoPlayer.java   
@Override
public void onRenderers(String[][] trackNames, MultiTrackChunkSource[] multiTrackSources,
    TrackRenderer[] renderers) {
  if (!canceled) {
    DemoPlayer.this.onRenderers(trackNames, multiTrackSources, renderers);
  }
}
项目:ExoPlayer    文件:DemoPlayer.java   
/**
 * 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.
 * @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;
}
项目:ExoPlayerCompat    文件:ExoPlayerWrapper.java   
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);
  }
项目:ExoPlayerCompat    文件:ExoPlayerWrapper.java   
@Override
public void onRenderers(String[][] trackNames, MultiTrackChunkSource[] multiTrackSources,
    TrackRenderer[] renderers) {
  if (!canceled) {
    mTrackRenderers = renderers;
    ExoPlayerWrapper.this.onRenderers(trackNames, multiTrackSources, renderers);
  }
}
项目:miku    文件:MediaPlayer.java   
/**
 * Invoked with the results from a {@link RendererBuilder}.
 *
 * @param trackNames        The names of the available tracks, indexed by {@link MediaPlayer} 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 MediaPlayer} 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 MediaPlayer} 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;
}
项目:AdvancedVideoView    文件:DemoPlayer.java   
/**
 * 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);
项目:android-exoplayer    文件:DemoPlayer.java   
/**
 * 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);
项目:exoPlayerHLS    文件:DemoPlayer.java   
/**
 * 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.
 * @param bandwidthMeter Provides an estimate of the currently available bandwidth. May be null.
 */
void onRenderers(String[][] trackNames, MultiTrackChunkSource[] multiTrackSources,
                 TrackRenderer[] renderers, BandwidthMeter bandwidthMeter);
项目:Exoplayer_VLC    文件:DemoPlayer.java   
/**
 * 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);
项目:ExoPlayerCompat    文件:ExoPlayerWrapper.java   
/**
 * Invoked with the results from a {@link RendererBuilder}.
 *
 * @param trackNames The names of the available tracks, indexed by {@link ExoPlayerWrapper} 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 ExoPlayerWrapper} 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 ExoPlayerWrapper} 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);