Skip to content

Commit

Permalink
update exo 2.18.0
Browse files Browse the repository at this point in the history
  • Loading branch information
CarGuo committed Jun 23, 2022
1 parent df48869 commit f7badfa
Show file tree
Hide file tree
Showing 8 changed files with 96 additions and 98 deletions.
16 changes: 9 additions & 7 deletions app/src/main/java/com/example/gsyvideoplayer/DetailPlayer.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,11 @@
import com.google.android.exoplayer2.source.TrackGroup;
import com.google.android.exoplayer2.source.TrackGroupArray;
import com.google.android.exoplayer2.trackselection.MappingTrackSelector;
import com.google.android.exoplayer2.trackselection.TrackSelectionOverrides;
import com.google.android.exoplayer2.trackselection.TrackSelectionOverride;
import com.google.android.exoplayer2.trackselection.TrackSelectionParameters;
import com.google.android.exoplayer2.trackselection.TrackSelector;
import com.google.android.exoplayer2.upstream.RawResourceDataSource;
import com.google.common.collect.ImmutableList;
import com.shuyu.gsyvideoplayer.GSYVideoManager;
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder;
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack;
Expand Down Expand Up @@ -264,6 +266,7 @@ public void onClick(View v) {
///exo 切换音轨
binding.change.setOnClickListener(new View.OnClickListener() {
int index = 0;

@Override
public void onClick(View view) {
if (binding.detailPlayer.getGSYVideoManager().getPlayer() instanceof Exo2PlayerManager) {
Expand All @@ -280,14 +283,13 @@ public void onClick(View view) {
} else {
index = 0;
}
if(rendererTrackGroups.length <= 1) {
return;
}
TrackGroup trackGroup = rendererTrackGroups.get(index);
TrackSelectionParameters parameters = trackSelector.getParameters().buildUpon()
.setForceHighestSupportedBitrate(true)
.setTrackSelectionOverrides(
new TrackSelectionOverrides.Builder().addOverride(
new TrackSelectionOverrides.TrackSelectionOverride(trackGroup)
).build()
).build();
.setOverrideForType(new TrackSelectionOverride(trackGroup, 0)).build();
trackSelector.setParameters(parameters);
}
}
Expand Down Expand Up @@ -438,7 +440,7 @@ private String getUrl() {
//String url = " String source1 = "http://9890.vod.myqcloud.com/9890_4e292f9a3dd011e6b4078980237cc3d3.f20.mp4";
//String url = "http://video.cdn.aizys.com/zzx3.9g.mkv";//long
//String url = "rtsp://admin:wh123456@112.44.163.248:554/h264/ch01/main/av_stream";//long
//String url = "https://aliyuncdnsaascloud.xjhktv.com/video/A%20Lin%2B%E5%80%AA%E5%AD%90%E5%86%88-%E4%B8%8D%E5%B1%91%E5%AE%8C%E7%BE%8E%5B%E5%9B%BD%5D%5B1080P%5D.mp4";//long
//String url = "https://aliyuncdnsaascloud.xjhktv.com/video/A%20Lin%2B%E5%80%AA%E5%AD%90%E5%86%88-%E4%B8%8D%E5%B1%91%E5%AE%8C%E7%BE%8E%5B%E5%9B%BD%5D%5B1080P%5D.mp4";//track
return url;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import android.os.Message;
import android.view.Surface;

import com.google.android.exoplayer2.video.DummySurface;
import com.google.android.exoplayer2.video.PlaceholderSurface;
import com.shuyu.gsyvideoplayer.cache.ICacheManager;
import com.shuyu.gsyvideoplayer.model.VideoOptionModel;
import com.shuyu.gsyvideoplayer.player.BasePlayerManager;
Expand All @@ -26,7 +26,7 @@ public class GSYExoPlayerManager extends BasePlayerManager {

private Surface surface;

private DummySurface dummySurface;
private PlaceholderSurface dummySurface;

@Override
public IMediaPlayer getMediaPlayer() {
Expand All @@ -38,7 +38,7 @@ public void initVideoPlayer(Context context, Message msg, List<VideoOptionModel>
mediaPlayer = new GSYExo2MediaPlayer(context);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
if (dummySurface == null) {
dummySurface = DummySurface.newInstanceV17(context, false);
dummySurface = PlaceholderSurface.newInstanceV17(context, false);
}
try {
mediaPlayer.setLooping(((GSYExoModel) msg.obj).isLooping());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,10 @@

import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.SeekParameters;
import com.google.android.exoplayer2.text.TextOutput;
import com.google.android.exoplayer2.video.DummySurface;
import com.google.android.exoplayer2.video.PlaceholderSurface;
import com.shuyu.gsyvideoplayer.cache.ICacheManager;
import com.shuyu.gsyvideoplayer.model.GSYModel;
import com.shuyu.gsyvideoplayer.model.VideoOptionModel;
import com.shuyu.gsyvideoplayer.player.BasePlayerManager;
import com.shuyu.gsyvideoplayer.utils.Debuger;

import java.util.List;

Expand All @@ -35,7 +32,7 @@ public class GSYExoSubTitlePlayerManager extends BasePlayerManager {

private Surface surface;

private DummySurface dummySurface;
private PlaceholderSurface dummySurface;

private long lastTotalRxBytes = 0;

Expand All @@ -52,7 +49,7 @@ public void initVideoPlayer(Context context, Message msg, List<VideoOptionModel>
mediaPlayer = new GSYExoSubTitlePlayer(context);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
if (dummySurface == null) {
dummySurface = DummySurface.newInstanceV17(context, false);
dummySurface = PlaceholderSurface.newInstanceV17(context, false);
}
//使用自己的cache模式
GSYExoSubTitleModel gsyModel = (GSYExoSubTitleModel) msg.obj;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import android.view.WindowManager;

import com.example.gsyvideoplayer.R;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.text.CueGroup;
import com.google.android.exoplayer2.ui.CaptionStyleCompat;
import com.google.android.exoplayer2.ui.SubtitleView;
import com.shuyu.gsyvideoplayer.utils.Debuger;
Expand All @@ -20,7 +22,7 @@

import java.util.HashMap;

public class GSYExoSubTitleVideoView extends NormalGSYVideoPlayer {
public class GSYExoSubTitleVideoView extends NormalGSYVideoPlayer implements Player.Listener {

private SubtitleView mSubtitleView;
private String mSubTitle;
Expand Down Expand Up @@ -75,11 +77,18 @@ protected void startPrepare() {
}
mBackUpPlayingBufferState = -1;

getGSYVideoManager().prepare(mUrl, mSubTitle, mSubtitleView, (mMapHeadData == null) ? new HashMap<String, String>() : mMapHeadData, mLooping, mSpeed, mCache, mCachePath, mOverrideExtension);
getGSYVideoManager().prepare(mUrl, mSubTitle, this, (mMapHeadData == null) ? new HashMap<String, String>() : mMapHeadData, mLooping, mSpeed, mCache, mCachePath, mOverrideExtension);
setStateAndUi(CURRENT_STATE_PREPAREING);
}


@Override
public void onCues(CueGroup cueGroup) {
if (mSubtitleView != null) {
mSubtitleView.setCues(cueGroup.cues);
}
}

public String getSubTitle() {
return mSubTitle;
}
Expand All @@ -97,7 +106,7 @@ public GSYBaseVideoPlayer startWindowFullscreen(Context context, boolean actionB
GSYBaseVideoPlayer gsyBaseVideoPlayer = super.startWindowFullscreen(context, actionBar, statusBar);
GSYExoSubTitleVideoView gsyExoSubTitleVideoView = (GSYExoSubTitleVideoView) gsyBaseVideoPlayer;
((GSYExoSubTitlePlayerManager) GSYExoSubTitleVideoManager.instance().getPlayer())
.addTextOutputPlaying(gsyExoSubTitleVideoView.mSubtitleView);
.addTextOutputPlaying(gsyExoSubTitleVideoView);

return gsyBaseVideoPlayer;
}
Expand All @@ -107,7 +116,7 @@ protected void resolveNormalVideoShow(View oldF, ViewGroup vp, GSYVideoPlayer gs
super.resolveNormalVideoShow(oldF, vp, gsyVideoPlayer);
GSYExoSubTitleVideoView gsyExoSubTitleVideoView = (GSYExoSubTitleVideoView) gsyVideoPlayer;
((GSYExoSubTitlePlayerManager) GSYExoSubTitleVideoManager.instance().getPlayer())
.removeTextOutput(gsyExoSubTitleVideoView.mSubtitleView);
.removeTextOutput(gsyExoSubTitleVideoView);

}

Expand Down
2 changes: 1 addition & 1 deletion gradle/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ ext {
gsyVideoVersion = "v8.3.0-release-jitpack"
danmakuFlameMasterSoVersion = "0.9.25"
glideVersion = "4.12.0"
exoPlayerVersion = "2.17.1"
exoPlayerVersion = "2.18.0"
permissionsDispatcherVersion = "4.9.1"

androidDependencies = [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import androidx.annotation.Nullable;

import com.google.android.exoplayer2.SeekParameters;
import com.google.android.exoplayer2.video.DummySurface;
import com.google.android.exoplayer2.video.PlaceholderSurface;
import com.shuyu.gsyvideoplayer.cache.ICacheManager;
import com.shuyu.gsyvideoplayer.model.GSYModel;
import com.shuyu.gsyvideoplayer.model.VideoOptionModel;
Expand All @@ -33,7 +33,7 @@ public class Exo2PlayerManager extends BasePlayerManager {

private Surface surface;

private DummySurface dummySurface;
private PlaceholderSurface dummySurface;

private long lastTotalRxBytes = 0;

Expand All @@ -50,7 +50,7 @@ public void initVideoPlayer(Context context, Message msg, List<VideoOptionModel>
mediaPlayer = new IjkExo2MediaPlayer(context);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
if (dummySurface == null) {
dummySurface = DummySurface.newInstanceV17(context, false);
dummySurface = PlaceholderSurface.newInstanceV17(context, false);
}
//使用自己的cache模式
GSYModel gsyModel = (GSYModel) msg.obj;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import com.google.android.exoplayer2.PlaybackParameters;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.SeekParameters;
import com.google.android.exoplayer2.TracksInfo;
import com.google.android.exoplayer2.analytics.AnalyticsListener;
import com.google.android.exoplayer2.decoder.DecoderCounters;
import com.google.android.exoplayer2.metadata.Metadata;
Expand Down Expand Up @@ -514,11 +513,6 @@ public void setRendererFactory(DefaultRenderersFactory rendererFactory) {
this.mRendererFactory = rendererFactory;
}

@Override
public void onTracksInfoChanged(@NonNull TracksInfo tracksInfo) {

}

@Override
public void onIsLoadingChanged(boolean isLoading) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.RendererCapabilities;
import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.TracksInfo;
import com.google.android.exoplayer2.Tracks;
import com.google.android.exoplayer2.audio.AudioRendererEventListener;
import com.google.android.exoplayer2.decoder.DecoderCounters;
import com.google.android.exoplayer2.decoder.DecoderReuseEvaluation;
Expand Down Expand Up @@ -136,75 +136,71 @@ public void onPlayerError(@NonNull PlaybackException error) {
}


@Override
public void onTracksInfoChanged(@NonNull TracksInfo tracksInfo) {

}

@Override
public void onTracksChanged(TrackGroupArray ignored, TrackSelectionArray trackSelections) {
MappedTrackInfo mappedTrackInfo = trackSelector.getCurrentMappedTrackInfo();
if (mappedTrackInfo == null) {
Log.d(TAG, "Tracks []");
return;
}
Log.d(TAG, "Tracks [");
// Log tracks associated to renderers.
for (int rendererIndex = 0; rendererIndex < mappedTrackInfo.getRendererCount(); rendererIndex++) {
TrackGroupArray rendererTrackGroups = mappedTrackInfo.getTrackGroups(rendererIndex);
TrackSelection trackSelection = trackSelections.get(rendererIndex);
if (rendererTrackGroups.length > 0) {
Log.d(TAG, " Renderer:" + rendererIndex + " [");
for (int groupIndex = 0; groupIndex < rendererTrackGroups.length; groupIndex++) {
TrackGroup trackGroup = rendererTrackGroups.get(groupIndex);
String adaptiveSupport = getAdaptiveSupportString(trackGroup.length,
mappedTrackInfo.getAdaptiveSupport(rendererIndex, groupIndex, false));
Log.d(TAG, " Group:" + groupIndex + ", adaptive_supported=" + adaptiveSupport + " [");
for (int trackIndex = 0; trackIndex < trackGroup.length; trackIndex++) {
String status = getTrackStatusString(trackSelection, trackGroup, trackIndex);
/*String formatSupport = getFormatSupportString(
mappedTrackInfo.getTrackFormatSupport(rendererIndex, groupIndex, trackIndex));
Log.d(TAG, " " + status + " Track:" + trackIndex + ", "
+ Format.toLogString(trackGroup.getFormat(trackIndex))
+ ", supported=" + formatSupport);*/
}
Log.d(TAG, " ]");
}
// Log metadata for at most one of the tracks selected for the renderer.
if (trackSelection != null) {
for (int selectionIndex = 0; selectionIndex < trackSelection.length(); selectionIndex++) {
Metadata metadata = trackSelection.getFormat(selectionIndex).metadata;
if (metadata != null) {
Log.d(TAG, " Metadata [");
printMetadata(metadata, " ");
Log.d(TAG, " ]");
break;
}
}
}
Log.d(TAG, " ]");
}
}
// Log tracks not associated with a renderer.
TrackGroupArray unassociatedTrackGroups = mappedTrackInfo.getUnmappedTrackGroups();
if (unassociatedTrackGroups.length > 0) {
Log.d(TAG, " Renderer:None [");
for (int groupIndex = 0; groupIndex < unassociatedTrackGroups.length; groupIndex++) {
Log.d(TAG, " Group:" + groupIndex + " [");
TrackGroup trackGroup = unassociatedTrackGroups.get(groupIndex);
for (int trackIndex = 0; trackIndex < trackGroup.length; trackIndex++) {
String status = getTrackStatusString(false);
String formatSupport = getFormatSupportString(
C.FORMAT_UNSUPPORTED_TYPE);
Log.d(TAG, " " + status + " Track:" + trackIndex + ", "
+ Format.toLogString(trackGroup.getFormat(trackIndex))
+ ", supported=" + formatSupport);
}
Log.d(TAG, " ]");
}
Log.d(TAG, " ]");
}
Log.d(TAG, "]");
public void onTracksChanged(@NonNull Tracks tracks) {
// MappedTrackInfo mappedTrackInfo = trackSelector.getCurrentMappedTrackInfo();
// if (mappedTrackInfo == null) {
// Log.d(TAG, "Tracks []");
// return;
// }
// Log.d(TAG, "Tracks [");
// // Log tracks associated to renderers.
// for (int rendererIndex = 0; rendererIndex < mappedTrackInfo.getRendererCount(); rendererIndex++) {
// TrackGroupArray rendererTrackGroups = mappedTrackInfo.getTrackGroups(rendererIndex);
// Tracks.Group trackSelection = tracks.getGroups().get(rendererIndex);
// if (rendererTrackGroups.length > 0) {
// Log.d(TAG, " Renderer:" + rendererIndex + " [");
// for (int groupIndex = 0; groupIndex < rendererTrackGroups.length; groupIndex++) {
// TrackGroup trackGroup = rendererTrackGroups.get(groupIndex);
// String adaptiveSupport = getAdaptiveSupportString(trackGroup.length,
// mappedTrackInfo.getAdaptiveSupport(rendererIndex, groupIndex, false));
// Log.d(TAG, " Group:" + groupIndex + ", adaptive_supported=" + adaptiveSupport + " [");
// for (int trackIndex = 0; trackIndex < trackGroup.length; trackIndex++) {
// //String status = getTrackStatusString(trackSelection., trackGroup, trackIndex);
// /*String formatSupport = getFormatSupportString(
// mappedTrackInfo.getTrackFormatSupport(rendererIndex, groupIndex, trackIndex));
// Log.d(TAG, " " + status + " Track:" + trackIndex + ", "
// + Format.toLogString(trackGroup.getFormat(trackIndex))
// + ", supported=" + formatSupport);*/
// }
// Log.d(TAG, " ]");
// }
// // Log metadata for at most one of the tracks selected for the renderer.
// if (trackSelection != null) {
// for (int selectionIndex = 0; selectionIndex < trackSelection.getMediaTrackGroup().length; selectionIndex++) {
// Metadata metadata = trackSelection.getMediaTrackGroup().getFormat(selectionIndex).metadata;
// if (metadata != null) {
// Log.d(TAG, " Metadata [");
// printMetadata(metadata, " ");
// Log.d(TAG, " ]");
// break;
// }
// }
// }
// Log.d(TAG, " ]");
// }
// }
// // Log tracks not associated with a renderer.
// TrackGroupArray unassociatedTrackGroups = mappedTrackInfo.getUnmappedTrackGroups();
// if (unassociatedTrackGroups.length > 0) {
// Log.d(TAG, " Renderer:None [");
// for (int groupIndex = 0; groupIndex < unassociatedTrackGroups.length; groupIndex++) {
// Log.d(TAG, " Group:" + groupIndex + " [");
// TrackGroup trackGroup = unassociatedTrackGroups.get(groupIndex);
// for (int trackIndex = 0; trackIndex < trackGroup.length; trackIndex++) {
// String status = getTrackStatusString(false);
// String formatSupport = getFormatSupportString(
// C.FORMAT_UNSUPPORTED_TYPE);
// Log.d(TAG, " " + status + " Track:" + trackIndex + ", "
// + Format.toLogString(trackGroup.getFormat(trackIndex))
// + ", supported=" + formatSupport);
// }
// Log.d(TAG, " ]");
// }
// Log.d(TAG, " ]");
// }
// Log.d(TAG, "]");
}

// MetadataOutput
Expand Down

0 comments on commit f7badfa

Please sign in to comment.