mirror of
https://github.com/androidx/media.git
synced 2025-05-10 00:59:51 +08:00
Use C constants as event source ids.
The construction currently in SourceBuilder will be moving inside of the core lib, so it can't refer to DemoPlayer constants. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=120822759
This commit is contained in:
parent
845d250442
commit
784a18a188
@ -409,29 +409,32 @@ public class PlayerActivity extends Activity implements SurfaceHolder.Callback,
|
|||||||
|
|
||||||
private void updateButtonVisibilities() {
|
private void updateButtonVisibilities() {
|
||||||
retryButton.setVisibility(playerNeedsSource ? View.VISIBLE : View.GONE);
|
retryButton.setVisibility(playerNeedsSource ? View.VISIBLE : View.GONE);
|
||||||
videoButton.setVisibility(haveTracks(DemoPlayer.TYPE_VIDEO) ? View.VISIBLE : View.GONE);
|
videoButton.setVisibility(haveTracks(DemoPlayer.RENDERER_INDEX_VIDEO) ? View.VISIBLE
|
||||||
audioButton.setVisibility(haveTracks(DemoPlayer.TYPE_AUDIO) ? View.VISIBLE : View.GONE);
|
: View.GONE);
|
||||||
textButton.setVisibility(haveTracks(DemoPlayer.TYPE_TEXT) ? View.VISIBLE : View.GONE);
|
audioButton.setVisibility(haveTracks(DemoPlayer.RENDERER_INDEX_AUDIO) ? View.VISIBLE
|
||||||
|
: View.GONE);
|
||||||
|
textButton.setVisibility(haveTracks(DemoPlayer.RENDERER_INDEX_TEXT) ? View.VISIBLE
|
||||||
|
: View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean haveTracks(int type) {
|
private boolean haveTracks(int rendererIndex) {
|
||||||
TrackInfo trackInfo = player == null ? null : player.getTrackInfo();
|
TrackInfo trackInfo = player == null ? null : player.getTrackInfo();
|
||||||
return trackInfo != null && trackInfo.getTrackGroups(type).length != 0;
|
return trackInfo != null && trackInfo.getTrackGroups(rendererIndex).length != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showVideoPopup(@SuppressWarnings("unused") View v) {
|
public void showVideoPopup(@SuppressWarnings("unused") View v) {
|
||||||
trackSelectionHelper.showSelectionDialog(this, R.string.video, player.getTrackInfo(),
|
trackSelectionHelper.showSelectionDialog(this, R.string.video, player.getTrackInfo(),
|
||||||
DemoPlayer.TYPE_VIDEO);
|
DemoPlayer.RENDERER_INDEX_VIDEO);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showAudioPopup(@SuppressWarnings("unused") View v) {
|
public void showAudioPopup(@SuppressWarnings("unused") View v) {
|
||||||
trackSelectionHelper.showSelectionDialog(this, R.string.audio, player.getTrackInfo(),
|
trackSelectionHelper.showSelectionDialog(this, R.string.audio, player.getTrackInfo(),
|
||||||
DemoPlayer.TYPE_AUDIO);
|
DemoPlayer.RENDERER_INDEX_AUDIO);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showTextPopup(@SuppressWarnings("unused") View v) {
|
public void showTextPopup(@SuppressWarnings("unused") View v) {
|
||||||
trackSelectionHelper.showSelectionDialog(this, R.string.text, player.getTrackInfo(),
|
trackSelectionHelper.showSelectionDialog(this, R.string.text, player.getTrackInfo(),
|
||||||
DemoPlayer.TYPE_TEXT);
|
DemoPlayer.RENDERER_INDEX_TEXT);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void toggleControlsVisibility() {
|
private void toggleControlsVisibility() {
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package com.google.android.exoplayer.demo.player;
|
package com.google.android.exoplayer.demo.player;
|
||||||
|
|
||||||
|
import com.google.android.exoplayer.C;
|
||||||
import com.google.android.exoplayer.CodecCounters;
|
import com.google.android.exoplayer.CodecCounters;
|
||||||
import com.google.android.exoplayer.DefaultTrackSelector;
|
import com.google.android.exoplayer.DefaultTrackSelector;
|
||||||
import com.google.android.exoplayer.DefaultTrackSelector.TrackInfo;
|
import com.google.android.exoplayer.DefaultTrackSelector.TrackInfo;
|
||||||
@ -133,10 +134,10 @@ public class DemoPlayer implements ExoPlayer.Listener, DefaultTrackSelector.Even
|
|||||||
public static final int STATE_ENDED = ExoPlayer.STATE_ENDED;
|
public static final int STATE_ENDED = ExoPlayer.STATE_ENDED;
|
||||||
|
|
||||||
public static final int RENDERER_COUNT = 4;
|
public static final int RENDERER_COUNT = 4;
|
||||||
public static final int TYPE_VIDEO = 0;
|
public static final int RENDERER_INDEX_VIDEO = 0;
|
||||||
public static final int TYPE_AUDIO = 1;
|
public static final int RENDERER_INDEX_AUDIO = 1;
|
||||||
public static final int TYPE_TEXT = 2;
|
public static final int RENDERER_INDEX_TEXT = 2;
|
||||||
public static final int TYPE_METADATA = 3;
|
public static final int RENDERER_INDEX_METADATA = 3;
|
||||||
|
|
||||||
private final ExoPlayer player;
|
private final ExoPlayer player;
|
||||||
private final DefaultTrackSelector trackSelector;
|
private final DefaultTrackSelector trackSelector;
|
||||||
@ -336,10 +337,10 @@ public class DemoPlayer implements ExoPlayer.Listener, DefaultTrackSelector.Even
|
|||||||
if (infoListener == null) {
|
if (infoListener == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (sourceId == TYPE_VIDEO) {
|
if (sourceId == C.TRACK_TYPE_VIDEO) {
|
||||||
videoFormat = format;
|
videoFormat = format;
|
||||||
infoListener.onVideoFormatEnabled(format, trigger, mediaTimeMs);
|
infoListener.onVideoFormatEnabled(format, trigger, mediaTimeMs);
|
||||||
} else if (sourceId == TYPE_AUDIO) {
|
} else if (sourceId == C.TRACK_TYPE_AUDIO) {
|
||||||
infoListener.onAudioFormatEnabled(format, trigger, mediaTimeMs);
|
infoListener.onAudioFormatEnabled(format, trigger, mediaTimeMs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -81,23 +81,21 @@ public class SourceBuilder {
|
|||||||
ChunkSource videoChunkSource = new DashChunkSource(manifestFetcher, C.TRACK_TYPE_VIDEO,
|
ChunkSource videoChunkSource = new DashChunkSource(manifestFetcher, C.TRACK_TYPE_VIDEO,
|
||||||
videoDataSource, new AdaptiveEvaluator(bandwidthMeter));
|
videoDataSource, new AdaptiveEvaluator(bandwidthMeter));
|
||||||
ChunkSampleSource videoSampleSource = new ChunkSampleSource(videoChunkSource, loadControl,
|
ChunkSampleSource videoSampleSource = new ChunkSampleSource(videoChunkSource, loadControl,
|
||||||
VIDEO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, DemoPlayer.TYPE_VIDEO);
|
VIDEO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, C.TRACK_TYPE_VIDEO);
|
||||||
|
|
||||||
// Build the audio renderer.
|
// Build the audio renderer.
|
||||||
DataSource audioDataSource = dataSourceFactory.createDataSource(bandwidthMeter);
|
DataSource audioDataSource = dataSourceFactory.createDataSource(bandwidthMeter);
|
||||||
ChunkSource audioChunkSource = new DashChunkSource(manifestFetcher, C.TRACK_TYPE_AUDIO,
|
ChunkSource audioChunkSource = new DashChunkSource(manifestFetcher, C.TRACK_TYPE_AUDIO,
|
||||||
audioDataSource, null);
|
audioDataSource, null);
|
||||||
ChunkSampleSource audioSampleSource = new ChunkSampleSource(audioChunkSource, loadControl,
|
ChunkSampleSource audioSampleSource = new ChunkSampleSource(audioChunkSource, loadControl,
|
||||||
AUDIO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player,
|
AUDIO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, C.TRACK_TYPE_AUDIO);
|
||||||
DemoPlayer.TYPE_AUDIO);
|
|
||||||
|
|
||||||
// Build the text renderer.
|
// Build the text renderer.
|
||||||
DataSource textDataSource = dataSourceFactory.createDataSource(bandwidthMeter);
|
DataSource textDataSource = dataSourceFactory.createDataSource(bandwidthMeter);
|
||||||
ChunkSource textChunkSource = new DashChunkSource(manifestFetcher, C.TRACK_TYPE_TEXT,
|
ChunkSource textChunkSource = new DashChunkSource(manifestFetcher, C.TRACK_TYPE_TEXT,
|
||||||
textDataSource, null);
|
textDataSource, null);
|
||||||
ChunkSampleSource textSampleSource = new ChunkSampleSource(textChunkSource, loadControl,
|
ChunkSampleSource textSampleSource = new ChunkSampleSource(textChunkSource, loadControl,
|
||||||
TEXT_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player,
|
TEXT_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, C.TRACK_TYPE_TEXT);
|
||||||
DemoPlayer.TYPE_TEXT);
|
|
||||||
|
|
||||||
return new MultiSampleSource(videoSampleSource, audioSampleSource, textSampleSource);
|
return new MultiSampleSource(videoSampleSource, audioSampleSource, textSampleSource);
|
||||||
}
|
}
|
||||||
@ -122,22 +120,21 @@ public class SourceBuilder {
|
|||||||
ChunkSource videoChunkSource = new SmoothStreamingChunkSource(manifestFetcher,
|
ChunkSource videoChunkSource = new SmoothStreamingChunkSource(manifestFetcher,
|
||||||
C.TRACK_TYPE_VIDEO, videoDataSource, new AdaptiveEvaluator(bandwidthMeter));
|
C.TRACK_TYPE_VIDEO, videoDataSource, new AdaptiveEvaluator(bandwidthMeter));
|
||||||
ChunkSampleSource videoSampleSource = new ChunkSampleSource(videoChunkSource, loadControl,
|
ChunkSampleSource videoSampleSource = new ChunkSampleSource(videoChunkSource, loadControl,
|
||||||
VIDEO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player,
|
VIDEO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, C.TRACK_TYPE_VIDEO);
|
||||||
DemoPlayer.TYPE_VIDEO);
|
|
||||||
|
|
||||||
// Build the audio renderer.
|
// Build the audio renderer.
|
||||||
DataSource audioDataSource = dataSourceFactory.createDataSource(bandwidthMeter);
|
DataSource audioDataSource = dataSourceFactory.createDataSource(bandwidthMeter);
|
||||||
ChunkSource audioChunkSource = new SmoothStreamingChunkSource(manifestFetcher,
|
ChunkSource audioChunkSource = new SmoothStreamingChunkSource(manifestFetcher,
|
||||||
C.TRACK_TYPE_AUDIO, audioDataSource, null);
|
C.TRACK_TYPE_AUDIO, audioDataSource, null);
|
||||||
ChunkSampleSource audioSampleSource = new ChunkSampleSource(audioChunkSource, loadControl,
|
ChunkSampleSource audioSampleSource = new ChunkSampleSource(audioChunkSource, loadControl,
|
||||||
AUDIO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, DemoPlayer.TYPE_AUDIO);
|
AUDIO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, C.TRACK_TYPE_AUDIO);
|
||||||
|
|
||||||
// Build the text renderer.
|
// Build the text renderer.
|
||||||
DataSource textDataSource = dataSourceFactory.createDataSource(bandwidthMeter);
|
DataSource textDataSource = dataSourceFactory.createDataSource(bandwidthMeter);
|
||||||
ChunkSource textChunkSource = new SmoothStreamingChunkSource(manifestFetcher,
|
ChunkSource textChunkSource = new SmoothStreamingChunkSource(manifestFetcher, C.TRACK_TYPE_TEXT,
|
||||||
C.TRACK_TYPE_TEXT, textDataSource, null);
|
textDataSource, null);
|
||||||
ChunkSampleSource textSampleSource = new ChunkSampleSource(textChunkSource, loadControl,
|
ChunkSampleSource textSampleSource = new ChunkSampleSource(textChunkSource, loadControl,
|
||||||
TEXT_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, DemoPlayer.TYPE_TEXT);
|
TEXT_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, C.TRACK_TYPE_TEXT);
|
||||||
|
|
||||||
return new MultiSampleSource(videoSampleSource, audioSampleSource, textSampleSource);
|
return new MultiSampleSource(videoSampleSource, audioSampleSource, textSampleSource);
|
||||||
}
|
}
|
||||||
@ -156,23 +153,23 @@ public class SourceBuilder {
|
|||||||
PtsTimestampAdjusterProvider timestampAdjusterProvider = new PtsTimestampAdjusterProvider();
|
PtsTimestampAdjusterProvider timestampAdjusterProvider = new PtsTimestampAdjusterProvider();
|
||||||
|
|
||||||
DataSource defaultDataSource = dataSourceFactory.createDataSource(bandwidthMeter);
|
DataSource defaultDataSource = dataSourceFactory.createDataSource(bandwidthMeter);
|
||||||
HlsChunkSource defaultChunkSource = new HlsChunkSource(manifestFetcher,
|
HlsChunkSource defaultChunkSource = new HlsChunkSource(manifestFetcher, C.TRACK_TYPE_DEFAULT,
|
||||||
C.TRACK_TYPE_DEFAULT, defaultDataSource, timestampAdjusterProvider,
|
defaultDataSource, timestampAdjusterProvider,
|
||||||
new FormatEvaluator.AdaptiveEvaluator(bandwidthMeter));
|
new FormatEvaluator.AdaptiveEvaluator(bandwidthMeter));
|
||||||
HlsSampleSource defaultSampleSource = new HlsSampleSource(defaultChunkSource, loadControl,
|
HlsSampleSource defaultSampleSource = new HlsSampleSource(defaultChunkSource, loadControl,
|
||||||
MUXED_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, DemoPlayer.TYPE_VIDEO);
|
MUXED_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, C.TRACK_TYPE_VIDEO);
|
||||||
|
|
||||||
DataSource audioDataSource = dataSourceFactory.createDataSource(bandwidthMeter);
|
DataSource audioDataSource = dataSourceFactory.createDataSource(bandwidthMeter);
|
||||||
HlsChunkSource audioChunkSource = new HlsChunkSource(manifestFetcher, C.TRACK_TYPE_AUDIO,
|
HlsChunkSource audioChunkSource = new HlsChunkSource(manifestFetcher, C.TRACK_TYPE_AUDIO,
|
||||||
audioDataSource, timestampAdjusterProvider, null);
|
audioDataSource, timestampAdjusterProvider, null);
|
||||||
HlsSampleSource audioSampleSource = new HlsSampleSource(audioChunkSource, loadControl,
|
HlsSampleSource audioSampleSource = new HlsSampleSource(audioChunkSource, loadControl,
|
||||||
AUDIO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, DemoPlayer.TYPE_AUDIO);
|
AUDIO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, C.TRACK_TYPE_AUDIO);
|
||||||
|
|
||||||
DataSource subtitleDataSource = dataSourceFactory.createDataSource(bandwidthMeter);
|
DataSource subtitleDataSource = dataSourceFactory.createDataSource(bandwidthMeter);
|
||||||
HlsChunkSource subtitleChunkSource = new HlsChunkSource(manifestFetcher,
|
HlsChunkSource subtitleChunkSource = new HlsChunkSource(manifestFetcher, C.TRACK_TYPE_TEXT,
|
||||||
C.TRACK_TYPE_TEXT, subtitleDataSource, timestampAdjusterProvider, null);
|
subtitleDataSource, timestampAdjusterProvider, null);
|
||||||
HlsSampleSource subtitleSampleSource = new HlsSampleSource(subtitleChunkSource, loadControl,
|
HlsSampleSource subtitleSampleSource = new HlsSampleSource(subtitleChunkSource, loadControl,
|
||||||
TEXT_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, DemoPlayer.TYPE_TEXT);
|
TEXT_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, C.TRACK_TYPE_TEXT);
|
||||||
|
|
||||||
return new MultiSampleSource(defaultSampleSource, audioSampleSource, subtitleSampleSource);
|
return new MultiSampleSource(defaultSampleSource, audioSampleSource, subtitleSampleSource);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user