Here are the examples of the java api class com.google.android.exoplayer.dash.mpd.MediaPresentationDescription taken from open source projects.
1. DashTest#testDashPlayback()
Project: ExoPlayer
File: DashTest.java
File: DashTest.java
private void testDashPlayback(HostActivity activity, String streamName, ActionSchedule actionSchedule, boolean fullPlaybackNoSeeking, String manifestFileName, String audioFormat, boolean canIncludeAdditionalVideoFormats, String... videoFormats) throws IOException { MediaPresentationDescription mpd = TestUtil.loadManifest(activity, TAG, MANIFEST_URL_PREFIX + manifestFileName, new MediaPresentationDescriptionParser()); MetricsLogger metricsLogger = MetricsLogger.Factory.createDefault(getInstrumentation(), TAG, REPORT_NAME, streamName); DashHostedTest test = new DashHostedTest(streamName, mpd, metricsLogger, fullPlaybackNoSeeking, audioFormat, canIncludeAdditionalVideoFormats, false, actionSchedule, videoFormats); activity.runTest(test, mpd.duration + MAX_ADDITIONAL_TIME_MS); // non-CDD required formats (b/28220076). if (test.needsCddLimitedRetry) { metricsLogger = MetricsLogger.Factory.createDefault(getInstrumentation(), TAG, REPORT_NAME, streamName + "_cdd_limited_retry"); test = new DashHostedTest(streamName, mpd, metricsLogger, fullPlaybackNoSeeking, audioFormat, false, true, actionSchedule, videoFormats); activity.runTest(test, mpd.duration + MAX_ADDITIONAL_TIME_MS); } }
2. DashChunkSource#continueBuffering()
Project: ExoPlayer
File: DashChunkSource.java
File: DashChunkSource.java
@Override public void continueBuffering(long playbackPositionUs) { if (manifestFetcher == null || !currentManifest.dynamic || fatalError != null) { return; } MediaPresentationDescription newManifest = manifestFetcher.getManifest(); if (newManifest != null && newManifest != processedManifest) { processManifest(newManifest); // Manifests may be rejected, so the new manifest may not become the next currentManifest. // Track a manifest has been processed to avoid processing twice when it was discarded. processedManifest = newManifest; } // TODO: This is a temporary hack to avoid constantly refreshing the MPD in cases where // minUpdatePeriod is set to 0. In such cases we shouldn't refresh unless there is explicit // signaling in the stream, according to: // http://azure.microsoft.com/blog/2014/09/13/dash-live-streaming-with-azure-media-service/ long minUpdatePeriod = currentManifest.minUpdatePeriod; if (minUpdatePeriod == 0) { minUpdatePeriod = 5000; } if (android.os.SystemClock.elapsedRealtime() > manifestFetcher.getManifestLoadStartTimestamp() + minUpdatePeriod) { manifestFetcher.requestRefresh(); } }
3. DashChunkSourceTest#checkLiveEdgeConsistencyWithTemplateAndLimitedTimeshift()
Project: ExoPlayer
File: DashChunkSourceTest.java
File: DashChunkSourceTest.java
private static void checkLiveEdgeConsistencyWithTemplateAndLimitedTimeshift(long durationMs, long liveEdgeLatencyMs, long seekPositionMs, long availableRangeStartMs, long availableRangeEndMs, long chunkStartTimeMs, long chunkEndTimeMs) { MediaPresentationDescription mpd = buildLiveMpdWithTemplate(durationMs, true); checkLiveEdgeConsistency(mpd, liveEdgeLatencyMs, seekPositionMs, availableRangeStartMs, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs); }
4. DashChunkSourceTest#checkLiveEdgeConsistencyWithTemplateAndUnlimitedTimeshift()
Project: ExoPlayer
File: DashChunkSourceTest.java
File: DashChunkSourceTest.java
private static void checkLiveEdgeConsistencyWithTemplateAndUnlimitedTimeshift(long durationMs, long liveEdgeLatencyMs, long availablePositionMs, long availableRangeEndMs, long chunkStartTimeMs, long chunkEndTimeMs) { MediaPresentationDescription mpd = buildLiveMpdWithTemplate(durationMs, false); checkLiveEdgeConsistency(mpd, liveEdgeLatencyMs, availablePositionMs, 0, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs); }
5. DashChunkSourceTest#checkLiveEdgeConsistencyWithTimeline()
Project: ExoPlayer
File: DashChunkSourceTest.java
File: DashChunkSourceTest.java
private static void checkLiveEdgeConsistencyWithTimeline(long durationMs, long timelineStartMs, long liveEdgeLatencyMs, long seekPositionMs, long availableRangeStartMs, long availableRangeEndMs, long chunkStartTimeMs, long chunkEndTimeMs) { MediaPresentationDescription mpd = buildLiveMpdWithTimeline(durationMs, timelineStartMs); checkLiveEdgeConsistency(mpd, liveEdgeLatencyMs, seekPositionMs, availableRangeStartMs, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs); }
6. DashChunkSourceTest#testSegmentRequestSequenceOnMultiPeriodLiveWithTemplate()
Project: ExoPlayer
File: DashChunkSourceTest.java
File: DashChunkSourceTest.java
public void testSegmentRequestSequenceOnMultiPeriodLiveWithTemplate() { MediaPresentationDescription mpd = buildMultiPeriodLiveMpdWithTemplate(); DashChunkSource chunkSource = buildDashChunkSource(mpd); checkSegmentRequestSequenceOnMultiPeriodLive(chunkSource); }
7. DashChunkSourceTest#testSegmentRequestSequenceOnMultiPeriodLiveWithTimeline()
Project: ExoPlayer
File: DashChunkSourceTest.java
File: DashChunkSourceTest.java
public void testSegmentRequestSequenceOnMultiPeriodLiveWithTimeline() { MediaPresentationDescription mpd = buildMultiPeriodLiveMpdWithTimeline(); DashChunkSource chunkSource = buildDashChunkSource(mpd); checkSegmentRequestSequenceOnMultiPeriodLive(chunkSource); }
8. DashChunkSourceTest#testGetSeekRangeOnMultiPeriodLiveWithTimeline()
Project: ExoPlayer
File: DashChunkSourceTest.java
File: DashChunkSourceTest.java
public void testGetSeekRangeOnMultiPeriodLiveWithTimeline() { MediaPresentationDescription mpd = buildMultiPeriodLiveMpdWithTimeline(); DashChunkSource chunkSource = buildDashChunkSource(mpd); TimeRange availableRange = chunkSource.getAvailableRange(); checkAvailableRange(availableRange, 0, MULTI_PERIOD_LIVE_DURATION_MS * 1000); }
9. DashChunkSourceTest#testGetAvailableRangeOnLiveWithTimeline()
Project: ExoPlayer
File: DashChunkSourceTest.java
File: DashChunkSourceTest.java
public void testGetAvailableRangeOnLiveWithTimeline() { MediaPresentationDescription mpd = buildLiveMpdWithTimeline(LIVE_DURATION_MS, 0); DashChunkSource chunkSource = buildDashChunkSource(mpd); TimeRange availableRange = chunkSource.getAvailableRange(); checkAvailableRange(availableRange, 0, LIVE_DURATION_MS * 1000); }