当前位置: 首页>>代码示例>>Java>>正文


Java SampleStream类代码示例

本文整理汇总了Java中com.google.android.exoplayer2.source.SampleStream的典型用法代码示例。如果您正苦于以下问题:Java SampleStream类的具体用法?Java SampleStream怎么用?Java SampleStream使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


SampleStream类属于com.google.android.exoplayer2.source包,在下文中一共展示了SampleStream类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: MediaPeriodHolder

import com.google.android.exoplayer2.source.SampleStream; //导入依赖的package包/类
public MediaPeriodHolder(Renderer[] renderers, RendererCapabilities[] rendererCapabilities,
    long rendererPositionOffsetUs, TrackSelector trackSelector, LoadControl loadControl,
    MediaSource mediaSource, Object periodUid, int periodIndex, boolean isLastPeriod,
    long startPositionUs) {
  this.renderers = renderers;
  this.rendererCapabilities = rendererCapabilities;
  this.rendererPositionOffsetUs = rendererPositionOffsetUs;
  this.trackSelector = trackSelector;
  this.loadControl = loadControl;
  this.mediaSource = mediaSource;
  this.uid = Assertions.checkNotNull(periodUid);
  this.index = periodIndex;
  this.isLast = isLastPeriod;
  this.startPositionUs = startPositionUs;
  sampleStreams = new SampleStream[renderers.length];
  mayRetainStreamFlags = new boolean[renderers.length];
  mediaPeriod = mediaSource.createPeriod(periodIndex, loadControl.getAllocator(),
      startPositionUs);
}
 
开发者ID:sanjaysingh1990,项目名称:Exoplayer2Radio,代码行数:20,代码来源:ExoPlayerImplInternal.java

示例2: selectTracks

import com.google.android.exoplayer2.source.SampleStream; //导入依赖的package包/类
@Override
public long selectTracks(TrackSelection[] selections, boolean[] mayRetainStreamFlags,
    SampleStream[] streams, boolean[] streamResetFlags, long positionUs) {
  Assert.assertTrue(preparedPeriod);
  int rendererCount = selections.length;
  for (int i = 0; i < rendererCount; i++) {
    if (streams[i] != null && (selections[i] == null || !mayRetainStreamFlags[i])) {
      streams[i] = null;
    }
    if (streams[i] == null && selections[i] != null) {
      TrackSelection selection = selections[i];
      Assert.assertTrue(1 <= selection.length());
      TrackGroup trackGroup = selection.getTrackGroup();
      Assert.assertTrue(trackGroupArray.indexOf(trackGroup) != C.INDEX_UNSET);
      int indexInTrackGroup = selection.getIndexInTrackGroup(selection.getSelectedIndex());
      Assert.assertTrue(0 <= indexInTrackGroup);
      Assert.assertTrue(indexInTrackGroup < trackGroup.length);
      streams[i] = createSampleStream(selection);
      streamResetFlags[i] = true;
    }
  }
  return positionUs;
}
 
开发者ID:y20k,项目名称:transistor,代码行数:24,代码来源:FakeMediaPeriod.java

示例3: selectTracks

import com.google.android.exoplayer2.source.SampleStream; //导入依赖的package包/类
@Override
@SuppressWarnings("unchecked")
public long selectTracks(TrackSelection[] selections, boolean[] mayRetainStreamFlags,
    SampleStream[] streams, boolean[] streamResetFlags, long positionUs) {
  long returnPositionUs = super.selectTracks(selections, mayRetainStreamFlags, streams,
      streamResetFlags, positionUs);
  List<ChunkSampleStream<FakeChunkSource>> validStreams = new ArrayList<>();
  for (SampleStream stream : streams) {
    if (stream != null) {
      validStreams.add((ChunkSampleStream<FakeChunkSource>) stream);
    }
  }
  this.sampleStreams = validStreams.toArray(new ChunkSampleStream[validStreams.size()]);
  this.sequenceableLoader = new CompositeSequenceableLoader(sampleStreams);
  return returnPositionUs;
}
 
开发者ID:y20k,项目名称:transistor,代码行数:17,代码来源:FakeAdaptiveMediaPeriod.java

示例4: MediaPeriodHolder

import com.google.android.exoplayer2.source.SampleStream; //导入依赖的package包/类
public MediaPeriodHolder(Renderer[] renderers, RendererCapabilities[] rendererCapabilities,
    long rendererPositionOffsetUs, TrackSelector trackSelector, LoadControl loadControl,
    MediaSource mediaSource, Object periodUid, int index, MediaPeriodInfo info) {
  this.renderers = renderers;
  this.rendererCapabilities = rendererCapabilities;
  this.rendererPositionOffsetUs = rendererPositionOffsetUs;
  this.trackSelector = trackSelector;
  this.loadControl = loadControl;
  this.mediaSource = mediaSource;
  this.uid = Assertions.checkNotNull(periodUid);
  this.index = index;
  this.info = info;
  sampleStreams = new SampleStream[renderers.length];
  mayRetainStreamFlags = new boolean[renderers.length];
  MediaPeriod mediaPeriod = mediaSource.createPeriod(info.id, loadControl.getAllocator());
  if (info.endPositionUs != C.TIME_END_OF_SOURCE) {
    ClippingMediaPeriod clippingMediaPeriod = new ClippingMediaPeriod(mediaPeriod, true);
    clippingMediaPeriod.setClipping(0, info.endPositionUs);
    mediaPeriod = clippingMediaPeriod;
  }
  this.mediaPeriod = mediaPeriod;
}
 
开发者ID:y20k,项目名称:transistor,代码行数:23,代码来源:ExoPlayerImplInternal.java

示例5: enable

import com.google.android.exoplayer2.source.SampleStream; //导入依赖的package包/类
@Override
public final void enable(RendererConfiguration configuration, Format[] formats,
    SampleStream stream, long positionUs, boolean joining, long offsetUs)
    throws ExoPlaybackException {
  Assertions.checkState(state == STATE_DISABLED);
  this.configuration = configuration;
  state = STATE_ENABLED;
  onEnabled(joining);
  replaceStream(formats, stream, offsetUs);
  onPositionReset(positionUs, joining);
}
 
开发者ID:sanjaysingh1990,项目名称:Exoplayer2Radio,代码行数:12,代码来源:BaseRenderer.java

示例6: replaceStream

import com.google.android.exoplayer2.source.SampleStream; //导入依赖的package包/类
@Override
public final void replaceStream(Format[] formats, SampleStream stream, long offsetUs)
    throws ExoPlaybackException {
  Assertions.checkState(!streamIsFinal);
  this.stream = stream;
  readEndOfStream = false;
  streamOffsetUs = offsetUs;
  onStreamChanged(formats);
}
 
开发者ID:sanjaysingh1990,项目名称:Exoplayer2Radio,代码行数:10,代码来源:BaseRenderer.java

示例7: enable

import com.google.android.exoplayer2.source.SampleStream; //导入依赖的package包/类
@Override
public final void enable(Format[] formats, SampleStream stream, long positionUs,
    boolean joining, long offsetUs) throws ExoPlaybackException {
  Assertions.checkState(state == STATE_DISABLED);
  state = STATE_ENABLED;
  onEnabled(joining);
  replaceStream(formats, stream, offsetUs);
  onPositionReset(positionUs, joining);
}
 
开发者ID:zhanglibin123488,项目名称:videoPickPlayer,代码行数:10,代码来源:BaseRenderer.java

示例8: MediaPeriodHolder

import com.google.android.exoplayer2.source.SampleStream; //导入依赖的package包/类
public MediaPeriodHolder(Renderer[] renderers, RendererCapabilities[] rendererCapabilities,
    TrackSelector<T> trackSelector, MediaSource mediaSource, MediaPeriod mediaPeriod,
    Object uid, long positionUs) {
  this.renderers = renderers;
  this.rendererCapabilities = rendererCapabilities;
  this.trackSelector = trackSelector;
  this.mediaSource = mediaSource;
  this.mediaPeriod = mediaPeriod;
  this.uid = Assertions.checkNotNull(uid);
  sampleStreams = new SampleStream[renderers.length];
  mayRetainStreamFlags = new boolean[renderers.length];
  startPositionUs = positionUs;
}
 
开发者ID:zhanglibin123488,项目名称:videoPickPlayer,代码行数:14,代码来源:ExoPlayerImplInternal.java

示例9: createSampleStream

import com.google.android.exoplayer2.source.SampleStream; //导入依赖的package包/类
@Override
protected SampleStream createSampleStream(TrackSelection trackSelection) {
  FakeChunkSource chunkSource = chunkSourceFactory.createChunkSource(trackSelection, durationUs);
  return new ChunkSampleStream<>(
      MimeTypes.getTrackType(trackSelection.getSelectedFormat().sampleMimeType), null,
      chunkSource, this, allocator, 0, 3, eventDispatcher);
}
 
开发者ID:y20k,项目名称:transistor,代码行数:8,代码来源:FakeAdaptiveMediaPeriod.java

示例10: replaceStream

import com.google.android.exoplayer2.source.SampleStream; //导入依赖的package包/类
@Override
public final void replaceStream(Format[] formats, SampleStream stream, long offsetUs)
    throws ExoPlaybackException {
  Assertions.checkState(!streamIsFinal);
  this.stream = stream;
  readEndOfStream = false;
  streamOffsetUs = offsetUs;
  onStreamChanged(formats, offsetUs);
}
 
开发者ID:y20k,项目名称:transistor,代码行数:10,代码来源:BaseRenderer.java

示例11: disassociateNoSampleRenderersWithEmptySampleStream

import com.google.android.exoplayer2.source.SampleStream; //导入依赖的package包/类
/**
 * For each renderer of type {@link C#TRACK_TYPE_NONE}, we will remove the dummy
 * {@link EmptySampleStream} that was associated with it.
 */
private void disassociateNoSampleRenderersWithEmptySampleStream(SampleStream[] sampleStreams) {
  for (int i = 0; i < rendererCapabilities.length; i++) {
    if (rendererCapabilities[i].getTrackType() == C.TRACK_TYPE_NONE) {
      sampleStreams[i] = null;
    }
  }
}
 
开发者ID:y20k,项目名称:transistor,代码行数:12,代码来源:ExoPlayerImplInternal.java

示例12: associateNoSampleRenderersWithEmptySampleStream

import com.google.android.exoplayer2.source.SampleStream; //导入依赖的package包/类
/**
 * For each renderer of type {@link C#TRACK_TYPE_NONE} that was enabled, we will
 * associate it with a dummy {@link EmptySampleStream}.
 */
private void associateNoSampleRenderersWithEmptySampleStream(SampleStream[] sampleStreams) {
  for (int i = 0; i < rendererCapabilities.length; i++) {
    if (rendererCapabilities[i].getTrackType() == C.TRACK_TYPE_NONE
        && trackSelectorResult.renderersEnabled[i]) {
      sampleStreams[i] = new EmptySampleStream();
    }
  }
}
 
开发者ID:y20k,项目名称:transistor,代码行数:13,代码来源:ExoPlayerImplInternal.java

示例13: getStream

import com.google.android.exoplayer2.source.SampleStream; //导入依赖的package包/类
@Override
public final SampleStream getStream() {
  return stream;
}
 
开发者ID:sanjaysingh1990,项目名称:Exoplayer2Radio,代码行数:5,代码来源:BaseRenderer.java

示例14: releaseIfEmbeddedSampleStream

import com.google.android.exoplayer2.source.SampleStream; //导入依赖的package包/类
private static void releaseIfEmbeddedSampleStream(SampleStream sampleStream) {
  if (sampleStream instanceof EmbeddedSampleStream) {
    ((EmbeddedSampleStream) sampleStream).release();
  }
}
 
开发者ID:jcodeing,项目名称:K-Sonic,代码行数:6,代码来源:DashMediaPeriod.java

示例15: selectTracks

import com.google.android.exoplayer2.source.SampleStream; //导入依赖的package包/类
@Override
public long selectTracks(TrackSelection[] selections, boolean[] mayRetainStreamFlags,
    SampleStream[] streams, boolean[] streamResetFlags, long positionUs) {
  // Map each selection and stream onto a child period index.
  int[] streamChildIndices = new int[selections.length];
  int[] selectionChildIndices = new int[selections.length];
  for (int i = 0; i < selections.length; i++) {
    streamChildIndices[i] = streams[i] == null ? C.INDEX_UNSET
        : streamWrapperIndices.get(streams[i]);
    selectionChildIndices[i] = C.INDEX_UNSET;
    if (selections[i] != null) {
      TrackGroup trackGroup = selections[i].getTrackGroup();
      for (int j = 0; j < sampleStreamWrappers.length; j++) {
        if (sampleStreamWrappers[j].getTrackGroups().indexOf(trackGroup) != C.INDEX_UNSET) {
          selectionChildIndices[i] = j;
          break;
        }
      }
    }
  }
  boolean selectedNewTracks = false;
  streamWrapperIndices.clear();
  // Select tracks for each child, copying the resulting streams back into a new streams array.
  SampleStream[] newStreams = new SampleStream[selections.length];
  SampleStream[] childStreams = new SampleStream[selections.length];
  TrackSelection[] childSelections = new TrackSelection[selections.length];
  ArrayList<HlsSampleStreamWrapper> enabledSampleStreamWrapperList = new ArrayList<>(
      sampleStreamWrappers.length);
  for (int i = 0; i < sampleStreamWrappers.length; i++) {
    for (int j = 0; j < selections.length; j++) {
      childStreams[j] = streamChildIndices[j] == i ? streams[j] : null;
      childSelections[j] = selectionChildIndices[j] == i ? selections[j] : null;
    }
    selectedNewTracks |= sampleStreamWrappers[i].selectTracks(childSelections,
        mayRetainStreamFlags, childStreams, streamResetFlags, !seenFirstTrackSelection);
    boolean wrapperEnabled = false;
    for (int j = 0; j < selections.length; j++) {
      if (selectionChildIndices[j] == i) {
        // Assert that the child provided a stream for the selection.
        Assertions.checkState(childStreams[j] != null);
        newStreams[j] = childStreams[j];
        wrapperEnabled = true;
        streamWrapperIndices.put(childStreams[j], i);
      } else if (streamChildIndices[j] == i) {
        // Assert that the child cleared any previous stream.
        Assertions.checkState(childStreams[j] == null);
      }
    }
    if (wrapperEnabled) {
      enabledSampleStreamWrapperList.add(sampleStreamWrappers[i]);
    }
  }
  // Copy the new streams back into the streams array.
  System.arraycopy(newStreams, 0, streams, 0, newStreams.length);
  // Update the local state.
  enabledSampleStreamWrappers = new HlsSampleStreamWrapper[enabledSampleStreamWrapperList.size()];
  enabledSampleStreamWrapperList.toArray(enabledSampleStreamWrappers);
  sequenceableLoader = new CompositeSequenceableLoader(enabledSampleStreamWrappers);
  if (seenFirstTrackSelection && selectedNewTracks) {
    seekToUs(positionUs);
    // We'll need to reset renderers consuming from all streams due to the seek.
    for (int i = 0; i < selections.length; i++) {
      if (streams[i] != null) {
        streamResetFlags[i] = true;
      }
    }
  }
  seenFirstTrackSelection = true;
  return positionUs;
}
 
开发者ID:zhanglibin123488,项目名称:videoPickPlayer,代码行数:71,代码来源:HlsMediaPeriod.java


注:本文中的com.google.android.exoplayer2.source.SampleStream类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。