Remove BandwidthMeter from SimpleExoPlayer
The BandwidthMeter should only be used by MediaSource instances and the objects they reference, so there's really no reason for the player to need to know about it. This change sacrifices DebugTextViewHelper showing the estimated bandwidth, but I think that's a price worth paying. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=127316755
This commit is contained in:
parent
4a5bb55920
commit
4f718363b5
@ -50,6 +50,7 @@ import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
|
||||
import com.google.android.exoplayer2.ui.PlayerControl;
|
||||
import com.google.android.exoplayer2.upstream.BandwidthMeter;
|
||||
import com.google.android.exoplayer2.upstream.DataSourceFactory;
|
||||
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
|
||||
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
|
||||
import com.google.android.exoplayer2.util.DebugTextViewHelper;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
@ -145,6 +146,7 @@ public class PlayerActivity extends Activity implements SurfaceHolder.Callback,
|
||||
super.onCreate(savedInstanceState);
|
||||
String userAgent = Util.getUserAgent(this, "ExoPlayerDemo");
|
||||
dataSourceFactory = new DefaultDataSourceFactory(this, userAgent);
|
||||
bandwidthMeter = new DefaultBandwidthMeter();
|
||||
mainHandler = new Handler();
|
||||
|
||||
setContentView(R.layout.player_activity);
|
||||
@ -291,7 +293,6 @@ public class PlayerActivity extends Activity implements SurfaceHolder.Callback,
|
||||
mediaController.setAnchorView(rootView);
|
||||
debugViewHelper = new DebugTextViewHelper(player, debugTextView);
|
||||
debugViewHelper.start();
|
||||
bandwidthMeter = player.getBandwidthMeter();
|
||||
playerNeedsSource = true;
|
||||
}
|
||||
if (playerNeedsSource) {
|
||||
|
@ -25,8 +25,6 @@ import com.google.android.exoplayer2.source.MediaSource;
|
||||
import com.google.android.exoplayer2.text.Cue;
|
||||
import com.google.android.exoplayer2.text.TextRenderer;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelector;
|
||||
import com.google.android.exoplayer2.upstream.BandwidthMeter;
|
||||
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.Context;
|
||||
@ -95,7 +93,6 @@ public final class SimpleExoPlayer implements ExoPlayer {
|
||||
private static final int MAX_DROPPED_VIDEO_FRAME_COUNT_TO_NOTIFY = 50;
|
||||
|
||||
private final ExoPlayer player;
|
||||
private final BandwidthMeter bandwidthMeter;
|
||||
private final Renderer[] renderers;
|
||||
private final ComponentListener componentListener;
|
||||
private final Handler mainHandler;
|
||||
@ -117,7 +114,6 @@ public final class SimpleExoPlayer implements ExoPlayer {
|
||||
LoadControl loadControl, DrmSessionManager drmSessionManager,
|
||||
boolean preferExtensionDecoders, long allowedVideoJoiningTimeMs) {
|
||||
mainHandler = new Handler();
|
||||
bandwidthMeter = new DefaultBandwidthMeter();
|
||||
componentListener = new ComponentListener();
|
||||
|
||||
// Build the renderers.
|
||||
@ -225,13 +221,6 @@ public final class SimpleExoPlayer implements ExoPlayer {
|
||||
player.sendMessages(messages);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The {@link BandwidthMeter} being used by the player.
|
||||
*/
|
||||
public BandwidthMeter getBandwidthMeter() {
|
||||
return bandwidthMeter;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The video format currently being played, or null if there is no video component to the
|
||||
* current media.
|
||||
|
@ -20,7 +20,6 @@ import com.google.android.exoplayer2.ExoPlaybackException;
|
||||
import com.google.android.exoplayer2.ExoPlayer;
|
||||
import com.google.android.exoplayer2.Format;
|
||||
import com.google.android.exoplayer2.SimpleExoPlayer;
|
||||
import com.google.android.exoplayer2.upstream.BandwidthMeter;
|
||||
|
||||
import android.widget.TextView;
|
||||
|
||||
@ -81,8 +80,8 @@ public final class DebugTextViewHelper implements Runnable, ExoPlayer.EventListe
|
||||
}
|
||||
|
||||
private void updateTextView() {
|
||||
textView.setText(getPlayerStateString() + getPlayerPeriodIndexString() + getBandwidthString()
|
||||
+ getVideoString() + getAudioString());
|
||||
textView.setText(getPlayerStateString() + getPlayerPeriodIndexString() + getVideoString()
|
||||
+ getAudioString());
|
||||
}
|
||||
|
||||
private String getPlayerStateString() {
|
||||
@ -111,16 +110,6 @@ public final class DebugTextViewHelper implements Runnable, ExoPlayer.EventListe
|
||||
return " period:" + player.getCurrentPeriodIndex();
|
||||
}
|
||||
|
||||
private String getBandwidthString() {
|
||||
BandwidthMeter bandwidthMeter = player.getBandwidthMeter();
|
||||
if (bandwidthMeter == null
|
||||
|| bandwidthMeter.getBitrateEstimate() == BandwidthMeter.NO_ESTIMATE) {
|
||||
return " bw:?";
|
||||
} else {
|
||||
return " bw:" + (bandwidthMeter.getBitrateEstimate() / 1000);
|
||||
}
|
||||
}
|
||||
|
||||
private String getVideoString() {
|
||||
Format format = player.getVideoFormat();
|
||||
if (format == null) {
|
||||
|
@ -28,6 +28,7 @@ import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
|
||||
import com.google.android.exoplayer2.trackselection.MappingTrackSelector;
|
||||
import com.google.android.exoplayer2.upstream.BandwidthMeter;
|
||||
import com.google.android.exoplayer2.upstream.DataSourceFactory;
|
||||
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
|
||||
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
|
||||
@ -127,7 +128,8 @@ public abstract class ExoHostedTest implements HostedTest, ExoPlayer.EventListen
|
||||
player = buildExoPlayer(host, surface, trackSelector);
|
||||
DataSourceFactory dataSourceFactory = new DefaultDataSourceFactory(host, Util
|
||||
.getUserAgent(host, "ExoPlayerPlaybackTests"));
|
||||
player.setMediaSource(buildSource(host, dataSourceFactory, player.getBandwidthMeter()));
|
||||
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
|
||||
player.setMediaSource(buildSource(host, dataSourceFactory, bandwidthMeter));
|
||||
player.addListener(this);
|
||||
player.setDebugListener(this);
|
||||
player.setPlayWhenReady(true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user