diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 56bbd1ddb..9ad37817a 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -204,6 +204,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis mBinding.video.setOnClickListener(view -> onVideo()); mBinding.control.text.setOnClickListener(this::onTrack); mBinding.control.audio.setOnClickListener(this::onTrack); + mBinding.control.video.setOnClickListener(this::onTrack); mBinding.control.next.setOnClickListener(view -> checkNext()); mBinding.control.prev.setOnClickListener(view -> checkPrev()); mBinding.control.scale.setOnClickListener(view -> onScale()); @@ -778,6 +779,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private void setTrackVisible(boolean visible) { mBinding.control.text.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_TEXT) ? View.VISIBLE : View.GONE); mBinding.control.audio.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_AUDIO) ? View.VISIBLE : View.GONE); + mBinding.control.video.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_VIDEO) ? View.VISIBLE : View.GONE); } private void setDefaultTrack() { diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 766fb507b..79321fe07 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -151,6 +151,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick mBinding.control.seek.setListener(mPlayers); mBinding.control.text.setOnClickListener(this::onTrack); mBinding.control.audio.setOnClickListener(this::onTrack); + mBinding.control.video.setOnClickListener(this::onTrack); mBinding.control.home.setOnClickListener(view -> onHome()); mBinding.control.scale.setOnClickListener(view -> onScale()); mBinding.control.speed.setOnClickListener(view -> onSpeed()); @@ -674,6 +675,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick private void setTrackVisible(boolean visible) { mBinding.control.text.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_TEXT) ? View.VISIBLE : View.GONE); mBinding.control.audio.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_AUDIO) ? View.VISIBLE : View.GONE); + mBinding.control.video.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_VIDEO) ? View.VISIBLE : View.GONE); } @Subscribe(threadMode = ThreadMode.MAIN) diff --git a/app/src/leanback/res/layout/view_control_live.xml b/app/src/leanback/res/layout/view_control_live.xml index 11005cdff..1294932fe 100644 --- a/app/src/leanback/res/layout/view_control_live.xml +++ b/app/src/leanback/res/layout/view_control_live.xml @@ -158,6 +158,22 @@ android:visibility="gone" tools:visibility="visible" /> + + + + 准备播放:%s 字幕 音轨 + 视轨 反转 跨类 片头片尾 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 4eaa223e9..b52dfb1e8 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -43,6 +43,7 @@ 準備播放:%s 字幕 音軌 + 視軌 反轉 跨類 片頭片尾 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 04cc8f412..18679904c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -43,6 +43,7 @@ Ready to play: %s Text Audio + Video Invert Across OP&ED 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 1d22a9e8e..1c34c0616 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 @@ -24,15 +24,5 @@ public interface ITrackInfo { int MEDIA_TRACK_TYPE_VIDEO = 2; int MEDIA_TRACK_TYPE_TEXT = 3; - IMediaFormat getFormat(); - - String getLanguage(); - int getTrackType(); - - int getChannelCount(); - - int getBitrate(); - - String getInfoInline(); } 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 3bb7d5153..bf197bdd7 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 @@ -19,8 +19,6 @@ package tv.danmaku.ijk.media.player.misc; import android.text.TextUtils; -import androidx.annotation.NonNull; - import tv.danmaku.ijk.media.player.IjkMediaMeta; public class IjkTrackInfo implements ITrackInfo { @@ -42,77 +40,37 @@ public class IjkTrackInfo implements ITrackInfo { } } - @Override public IMediaFormat getFormat() { return new IjkMediaFormat(mStreamMeta); } - @Override public String getLanguage() { if (mStreamMeta == null || TextUtils.isEmpty(mStreamMeta.mLanguage)) return "und"; return mStreamMeta.mLanguage; } - @Override public int getChannelCount() { return mStreamMeta.getChannelCount(); } - @Override public int getBitrate() { return (int) mStreamMeta.mBitrate; } - @Override - public int getTrackType() { - return mTrackType; + public int getWidth() { + return mStreamMeta.mWidth; } - public void setTrackType(int trackType) { - mTrackType = trackType; + public int getHeight() { + return mStreamMeta.mHeight; } - @NonNull @Override - public String toString() { - return getClass().getSimpleName() + '{' + getInfoInline() + "}"; + public int getTrackType() { + return mTrackType; } - @Override - public String getInfoInline() { - StringBuilder out = new StringBuilder(128); - switch (mTrackType) { - case MEDIA_TRACK_TYPE_VIDEO: - out.append("VIDEO"); - out.append(", "); - out.append(mStreamMeta.getCodecShortNameInline()); - out.append(", "); - out.append(mStreamMeta.getBitrateInline()); - out.append(", "); - out.append(mStreamMeta.getResolutionInline()); - break; - case MEDIA_TRACK_TYPE_AUDIO: - out.append("AUDIO"); - out.append(", "); - out.append(mStreamMeta.getCodecShortNameInline()); - out.append(", "); - out.append(mStreamMeta.getBitrateInline()); - out.append(", "); - out.append(mStreamMeta.getSampleRateInline()); - out.append(", "); - out.append(mStreamMeta.getChannelLayoutInline()); - break; - case MEDIA_TRACK_TYPE_TEXT: - out.append("TIMEDTEXT"); - out.append(", "); - out.append(mStreamMeta.getCodecShortNameInline()); - out.append(", "); - out.append(mStreamMeta.mLanguage); - break; - default: - out.append("UNKNOWN"); - break; - } - return out.toString(); + public void setTrackType(int trackType) { + mTrackType = trackType; } }