From 855752abb6863b4df9007c3934a4b90effb72c5e Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 9 Jun 2023 10:50:46 +0800 Subject: [PATCH] Clean code --- .../ijk/media/player/IjkMediaPlayer.java | 13 +---------- .../media/player/misc/AndroidTrackInfo.java | 23 +++++++++---------- .../ijk/media/player/misc/IjkTrackInfo.java | 19 ++++++++++++++- 3 files changed, 30 insertions(+), 25 deletions(-) diff --git a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java index 9b846aa56..ca0075f15 100644 --- a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java +++ b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java @@ -42,7 +42,6 @@ import java.lang.ref.WeakReference; import java.net.URLEncoder; import java.security.InvalidParameterException; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.Map; @@ -445,19 +444,9 @@ public final class IjkMediaPlayer extends AbstractMediaPlayer { } } - private List getStreams() { - Bundle bundle = getMediaMeta(); - if (bundle == null) return Collections.emptyList(); - IjkMediaMeta mediaMeta = IjkMediaMeta.parse(bundle); - if (mediaMeta == null) return Collections.emptyList(); - return mediaMeta.mStreams; - } - @Override public List getTrackInfo() { - List trackInfos = new ArrayList<>(); - for (IjkMediaMeta.IjkStreamMeta streamMeta : getStreams()) trackInfos.add(new IjkTrackInfo(streamMeta)); - return trackInfos; + return IjkTrackInfo.fromMediaMeta(getMediaMeta()); } @Override diff --git a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/AndroidTrackInfo.java b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/AndroidTrackInfo.java index def166787..e3557a3df 100644 --- a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/AndroidTrackInfo.java +++ b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/AndroidTrackInfo.java @@ -33,26 +33,25 @@ public class AndroidTrackInfo implements ITrackInfo { return fromTrackInfo(mp.getTrackInfo()); } - private static List fromTrackInfo(MediaPlayer.TrackInfo[] trackInfos) { - if (trackInfos == null) return Collections.emptyList(); - List androidTrackInfo = new ArrayList<>(); - for (MediaPlayer.TrackInfo trackInfo : trackInfos) androidTrackInfo.add(new AndroidTrackInfo(trackInfo)); - return androidTrackInfo; + private static List fromTrackInfo(MediaPlayer.TrackInfo[] items) { + if (items == null) return Collections.emptyList(); + List trackInfos = new ArrayList<>(); + for (MediaPlayer.TrackInfo item : items) trackInfos.add(new AndroidTrackInfo(item)); + return trackInfos; } private AndroidTrackInfo(MediaPlayer.TrackInfo trackInfo) { - mTrackInfo = trackInfo; - initTrackType(); + initTrackType(mTrackInfo = trackInfo); } - private void initTrackType() { - if (mTrackInfo == null) { + private void initTrackType(MediaPlayer.TrackInfo trackInfo) { + if (trackInfo == null) { setTrackType(MEDIA_TRACK_TYPE_UNKNOWN); - } else if (mTrackInfo.getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_VIDEO) { + } else if (trackInfo.getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_VIDEO) { setTrackType(ITrackInfo.MEDIA_TRACK_TYPE_VIDEO); - } else if (mTrackInfo.getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_AUDIO) { + } else if (trackInfo.getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_AUDIO) { setTrackType(ITrackInfo.MEDIA_TRACK_TYPE_AUDIO); - } else if (mTrackInfo.getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_TIMEDTEXT || mTrackInfo.getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_SUBTITLE) { + } else if (trackInfo.getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_TIMEDTEXT || trackInfo.getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_SUBTITLE) { setTrackType(ITrackInfo.MEDIA_TRACK_TYPE_TEXT); } } diff --git a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/IjkTrackInfo.java b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/IjkTrackInfo.java index 7af3eb594..d46bc9554 100644 --- a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/IjkTrackInfo.java +++ b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/IjkTrackInfo.java @@ -17,8 +17,13 @@ package tv.danmaku.ijk.media.player.misc; +import android.os.Bundle; import android.text.TextUtils; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + import tv.danmaku.ijk.media.player.IjkMediaMeta; public class IjkTrackInfo implements ITrackInfo { @@ -26,7 +31,19 @@ public class IjkTrackInfo implements ITrackInfo { private final IjkMediaMeta.IjkStreamMeta mStreamMeta; private int mTrackType = MEDIA_TRACK_TYPE_UNKNOWN; - public IjkTrackInfo(IjkMediaMeta.IjkStreamMeta streamMeta) { + public static List fromMediaMeta(Bundle bundle) { + if (bundle == null) return Collections.emptyList(); + return fromMediaMeta(IjkMediaMeta.parse(bundle)); + } + + private static List fromMediaMeta(IjkMediaMeta mediaMeta) { + if (mediaMeta == null) return Collections.emptyList(); + List trackInfos = new ArrayList<>(); + for (IjkMediaMeta.IjkStreamMeta streamMeta : mediaMeta.mStreams) trackInfos.add(new IjkTrackInfo(streamMeta)); + return trackInfos; + } + + private IjkTrackInfo(IjkMediaMeta.IjkStreamMeta streamMeta) { initTrackType(mStreamMeta = streamMeta); }