diff --git a/app/src/main/java/com/fongmi/android/tv/player/TrackNameProvider.java b/app/src/main/java/com/fongmi/android/tv/player/TrackNameProvider.java index 2a7829a65..dfabe5855 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/TrackNameProvider.java +++ b/app/src/main/java/com/fongmi/android/tv/player/TrackNameProvider.java @@ -42,11 +42,11 @@ public class TrackNameProvider { String trackName; int trackType = trackInfo.getTrackType(); if (trackType == C.TRACK_TYPE_VIDEO) { - trackName = joinWithSeparator(buildResolutionString(trackInfo.getWidth(), trackInfo.getHeight()), buildBitrateString(trackInfo.getBitrate())); + trackName = joinWithSeparator(buildResolutionString(trackInfo.getWidth(), trackInfo.getHeight()), buildMimeString(trackInfo.getMimeType()), buildBitrateString(trackInfo.getBitrate())); } else if (trackType == C.TRACK_TYPE_AUDIO) { - trackName = joinWithSeparator(buildLanguageString(trackInfo.getLanguage()), buildAudioChannelString(trackInfo.getChannelCount()), buildBitrateString(trackInfo.getBitrate())); + trackName = joinWithSeparator(buildLanguageString(trackInfo.getLanguage()), buildAudioChannelString(trackInfo.getChannelCount()), buildMimeString(trackInfo.getMimeType()), buildBitrateString(trackInfo.getBitrate())); } else { - trackName = buildLanguageString(trackInfo.getLanguage()); + trackName = joinWithSeparator(buildLanguageString(trackInfo.getLanguage()), buildMimeString(trackInfo.getMimeType())); } return TextUtils.isEmpty(trackName) ? resources.getString(R.string.exo_track_unknown) : trackName; } @@ -150,7 +150,11 @@ public class TrackNameProvider { private String buildMimeString(Format format) { if (format.sampleMimeType == null) return ""; - switch (format.sampleMimeType) { + return buildMimeString(format.sampleMimeType); + } + + private String buildMimeString(String mimeType) { + switch (mimeType) { case MimeTypes.AUDIO_DTS: return "DTS"; case MimeTypes.AUDIO_DTS_HD: @@ -204,7 +208,7 @@ public class TrackNameProvider { case MimeTypes.APPLICATION_DVBSUBS: return "DVB"; default: - return format.sampleMimeType; + return mimeType; } } } diff --git a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/IjkMediaMeta.java b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/IjkMediaMeta.java index d5b255d23..b3d3922bb 100644 --- a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/IjkMediaMeta.java +++ b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/IjkMediaMeta.java @@ -300,57 +300,13 @@ public class IjkMediaMeta { } } - public String getCodecLongNameInline() { + public String getCodecName() { if (!TextUtils.isEmpty(mCodecLongName)) { return mCodecLongName; } else if (!TextUtils.isEmpty(mCodecName)) { return mCodecName; } else { - return "N/A"; - } - } - - public String getCodecShortNameInline() { - if (!TextUtils.isEmpty(mCodecName)) { - return mCodecName; - } else { - return "N/A"; - } - } - - public String getResolutionInline() { - if (mWidth <= 0 || mHeight <= 0) { - return "N/A"; - } else if (mSarNum <= 0 || mSarDen <= 0) { - return String.format(Locale.US, "%d x %d", mWidth, mHeight); - } else { - return String.format(Locale.US, "%d x %d [SAR %d:%d]", mWidth, mHeight, mSarNum, mSarDen); - } - } - - public String getFpsInline() { - if (mFpsNum <= 0 || mFpsDen <= 0) { - return "N/A"; - } else { - return String.valueOf(((float) (mFpsNum)) / mFpsDen); - } - } - - public String getBitrateInline() { - if (mBitrate <= 0) { - return "N/A"; - } else if (mBitrate < 1000) { - return String.format(Locale.US, "%d bit/s", mBitrate); - } else { - return String.format(Locale.US, "%d kb/s", mBitrate / 1000); - } - } - - public String getSampleRateInline() { - if (mSampleRate <= 0) { - return "N/A"; - } else { - return String.format(Locale.US, "%d Hz", mSampleRate); + return ""; } } @@ -371,29 +327,5 @@ public class IjkMediaMeta { return (int) mChannelLayout; } } - - public String getChannelLayoutInline() { - if (mChannelLayout <= 0) { - return "N/A"; - } else { - if (mChannelLayout == AV_CH_LAYOUT_MONO) { - return "mono"; - } else if (mChannelLayout == AV_CH_LAYOUT_STEREO) { - return "stereo"; - } else if (mChannelLayout == AV_CH_LAYOUT_5POINT1) { - return "AV_CH_LAYOUT_5POINT1"; - } else if (mChannelLayout == AV_CH_LAYOUT_5POINT0) { - return "AV_CH_LAYOUT_5POINT0"; - } else if (mChannelLayout == AV_CH_LAYOUT_7POINT1) { - return "AV_CH_LAYOUT_7POINT1"; - } else if (mChannelLayout == AV_CH_LAYOUT_7POINT0) { - return "AV_CH_LAYOUT_7POINT0"; - } else if (mChannelLayout == AV_CH_LAYOUT_7POINT1_WIDE) { - return "AV_CH_LAYOUT_7POINT1_WIDE"; - } else { - return String.format(Locale.US, "%x", mChannelLayout); - } - } - } } } 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 e3557a3df..25c6b0340 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 @@ -62,6 +62,12 @@ public class AndroidTrackInfo implements ITrackInfo { return mTrackInfo.getLanguage(); } + @Override + public String getMimeType() { + if (mTrackInfo == null || mTrackInfo.getFormat() == null) return ""; + return mTrackInfo.getFormat().getString(MediaFormat.KEY_MIME); + } + @Override public int getChannelCount() { if (mTrackInfo == null || mTrackInfo.getFormat() == null) return 0; diff --git a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/ITrackInfo.java b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/ITrackInfo.java index 87bf1d902..68b86ce1e 100644 --- a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/ITrackInfo.java +++ b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/misc/ITrackInfo.java @@ -26,6 +26,8 @@ public interface ITrackInfo { String getLanguage(); + String getMimeType(); + int getTrackType(); int getChannelCount(); 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 d46bc9554..a448543b4 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 @@ -63,23 +63,33 @@ public class IjkTrackInfo implements ITrackInfo { return mStreamMeta.mLanguage; } + @Override + public String getMimeType() { + if (mStreamMeta == null) return ""; + return mStreamMeta.getCodecName(); + } + @Override public int getChannelCount() { + if (mStreamMeta == null) return 0; return mStreamMeta.getChannelCount(); } @Override public int getBitrate() { + if (mStreamMeta == null) return 0; return (int) mStreamMeta.mBitrate; } @Override public int getWidth() { + if (mStreamMeta == null) return 0; return mStreamMeta.mWidth; } @Override public int getHeight() { + if (mStreamMeta == null) return 0; return mStreamMeta.mHeight; }