diff --git a/app/build.gradle b/app/build.gradle index 62eda29c8..a02c06d29 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -109,7 +109,6 @@ dependencies { implementation 'com.guolindev.permissionx:permissionx:1.8.0' implementation 'com.hierynomus:smbj:0.14.0' implementation 'io.antmedia:rtmp-client:3.2.0' - implementation('io.github.peerless2012:ass-media:0.2.1') { exclude group: 'androidx.media3' } implementation 'javax.servlet:javax.servlet-api:3.1.0' implementation 'org.eclipse.jetty:jetty-client:8.1.21.v20160908' implementation('org.eclipse.jetty:jetty-server:8.1.21.v20160908') { exclude group: 'org.eclipse.jetty.orbit', module: 'javax.servlet' } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingPlayerActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingPlayerActivity.java index b4af4931e..6b2633b9a 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingPlayerActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingPlayerActivity.java @@ -49,7 +49,6 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B format = new DecimalFormat("0.#"); mBinding.render.requestFocus(); mBinding.uaText.setText(Setting.getUa()); - mBinding.libassText.setText(getSwitch(Setting.isLibAss())); mBinding.tunnelText.setText(getSwitch(Setting.isTunnel())); mBinding.speedText.setText(format.format(Setting.getSpeed())); mBinding.bufferText.setText(String.valueOf(Setting.getBuffer())); @@ -69,7 +68,6 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B mBinding.scale.setOnClickListener(this::setScale); mBinding.speed.setOnClickListener(this::onSpeed); mBinding.buffer.setOnClickListener(this::onBuffer); - mBinding.libass.setOnClickListener(this::setLibAss); mBinding.render.setOnClickListener(this::setRender); mBinding.tunnel.setOnClickListener(this::setTunnel); mBinding.caption.setOnClickListener(this::setCaption); @@ -126,11 +124,6 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B Setting.putBuffer(times); } - private void setLibAss(View view) { - Setting.putLibAss(!Setting.isLibAss()); - mBinding.libassText.setText(getSwitch(Setting.isLibAss())); - } - private void setRender(View view) { int index = Setting.getRender(); Setting.putRender(index = index == render.length - 1 ? 0 : ++index); diff --git a/app/src/leanback/res/layout/activity_setting_player.xml b/app/src/leanback/res/layout/activity_setting_player.xml index c0abb35ad..95cf1de30 100644 --- a/app/src/leanback/res/layout/activity_setting_player.xml +++ b/app/src/leanback/res/layout/activity_setting_player.xml @@ -100,35 +100,6 @@ - - - - - - - - subs; private String format; private String url; @@ -103,7 +101,6 @@ public class Players implements Player.Listener, ParseCallback, DrawHandler.Call private int decode; private int retry; - private Size size; public static Players create(Activity activity) { Players player = new Players(activity); @@ -135,11 +132,8 @@ public class Players implements Player.Listener, ParseCallback, DrawHandler.Call } private void setPlayer(PlayerView view) { - AssHandler assHandler = new AssHandler(AssRenderType.OPEN_GL); - AssSubtitleParserFactory subtitleParserFactory = new AssSubtitleParserFactory(assHandler); - exoPlayer = new ExoPlayer.Builder(App.get()).setLoadControl(ExoUtil.buildLoadControl()).setTrackSelector(ExoUtil.buildTrackSelector()).setRenderersFactory(ExoUtil.buildRenderersFactory(isHard() ? EXTENSION_RENDERER_MODE_ON : EXTENSION_RENDERER_MODE_PREFER)).setMediaSourceFactory(ExoUtil.buildMediaSourceFactory(assHandler, subtitleParserFactory)).build(); + exoPlayer = new ExoPlayer.Builder(App.get()).setLoadControl(ExoUtil.buildLoadControl()).setTrackSelector(ExoUtil.buildTrackSelector()).setRenderersFactory(ExoUtil.buildRenderersFactory(isHard() ? EXTENSION_RENDERER_MODE_ON : EXTENSION_RENDERER_MODE_PREFER)).setMediaSourceFactory(ExoUtil.buildMediaSourceFactory()).build(); exoPlayer.setAudioAttributes(AudioAttributes.DEFAULT, true); - if (Setting.isLibAss()) assHandler.init(exoPlayer); exoPlayer.addAnalyticsListener(new EventLogger()); exoPlayer.setHandleAudioBecomingNoisy(true); view.setRender(Setting.getRender()); @@ -201,7 +195,6 @@ public class Players implements Player.Listener, ParseCallback, DrawHandler.Call } public void clear() { - setVideoSize(Size.ZERO); danmakus = null; headers = null; format = null; @@ -215,11 +208,11 @@ public class Players implements Player.Listener, ParseCallback, DrawHandler.Call } public int getVideoWidth() { - return size == null ? 0 : size.getWidth(); + return size == null ? 0 : size.width; } public int getVideoHeight() { - return size == null ? 0 : size.getHeight(); + return size == null ? 0 : size.height; } public float getSpeed() { @@ -639,31 +632,19 @@ public class Players implements Player.Listener, ParseCallback, DrawHandler.Call PlayerEvent.state(state); } + @Override + public void onVideoSizeChanged(@NonNull VideoSize videoSize) { + this.size = videoSize; + PlayerEvent.size(); + } + @Override public void onTracksChanged(@NonNull Tracks tracks) { if (tracks.isEmpty()) return; setTrack(Track.find(url)); - setVideoSize(tracks); PlayerEvent.track(); } - private void setVideoSize(@NonNull Tracks tracks) { - for (Tracks.Group group : tracks.getGroups()) { - if (group.getType() != C.TRACK_TYPE_VIDEO) continue; - for (int i = 0; i < group.length; i++) { - if (group.isTrackSelected(i)) { - setVideoSize(new Size(group.getTrackFormat(i).width, group.getTrackFormat(i).height)); - break; - } - } - } - } - - private void setVideoSize(Size size) { - this.size = size; - PlayerEvent.size(); - } - @Override public void onPlayerError(@NonNull PlaybackException error) { Logger.t(TAG).e(error.errorCode + "," + url); diff --git a/app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java b/app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java index 605acd7a7..bfb9abf26 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java @@ -36,8 +36,6 @@ import java.util.Locale; import java.util.Map; import io.github.anilbeesetti.nextlib.media3ext.ffdecoder.NextRenderersFactory; -import io.github.peerless2012.ass.media.AssHandler; -import io.github.peerless2012.ass.media.parser.AssSubtitleParserFactory; public class ExoUtil { @@ -61,8 +59,8 @@ public class ExoUtil { return new NextRenderersFactory(App.get()).setAudioPrefer(Setting.isAudioPrefer()).setEnableDecoderFallback(true).setExtensionRendererMode(renderMode); } - public static MediaSource.Factory buildMediaSourceFactory(AssHandler assHandler, AssSubtitleParserFactory subtitleParserFactory) { - return new MediaSourceFactory(assHandler, subtitleParserFactory); + public static MediaSource.Factory buildMediaSourceFactory() { + return new MediaSourceFactory(); } public static CaptionStyleCompat getCaptionStyle() { diff --git a/app/src/main/java/com/fongmi/android/tv/player/exo/MediaSourceFactory.java b/app/src/main/java/com/fongmi/android/tv/player/exo/MediaSourceFactory.java index 85ca020ef..5945f9992 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/exo/MediaSourceFactory.java +++ b/app/src/main/java/com/fongmi/android/tv/player/exo/MediaSourceFactory.java @@ -22,16 +22,11 @@ import androidx.media3.extractor.ExtractorsFactory; import androidx.media3.extractor.ts.TsExtractor; import com.fongmi.android.tv.App; -import com.fongmi.android.tv.Setting; import com.github.catvod.net.OkHttp; import java.util.HashMap; import java.util.Map; -import io.github.peerless2012.ass.media.AssHandler; -import io.github.peerless2012.ass.media.kt.AssPlayerKt; -import io.github.peerless2012.ass.media.parser.AssSubtitleParserFactory; - public class MediaSourceFactory implements MediaSource.Factory { private final DefaultMediaSourceFactory defaultMediaSourceFactory; @@ -39,12 +34,8 @@ public class MediaSourceFactory implements MediaSource.Factory { private DataSource.Factory dataSourceFactory; private ExtractorsFactory extractorsFactory; - public MediaSourceFactory(AssHandler assHandler, AssSubtitleParserFactory subtitleParserFactory) { - if (Setting.isLibAss()) { - defaultMediaSourceFactory = new DefaultMediaSourceFactory(getDataSourceFactory(), AssPlayerKt.withAssMkvSupport(getExtractorsFactory(), subtitleParserFactory, assHandler)).setSubtitleParserFactory(subtitleParserFactory); - } else { - defaultMediaSourceFactory = new DefaultMediaSourceFactory(getDataSourceFactory(), getExtractorsFactory()); - } + public MediaSourceFactory() { + defaultMediaSourceFactory = new DefaultMediaSourceFactory(getDataSourceFactory(), getExtractorsFactory()); } @NonNull diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java index 6b2dd4206..7146b4bd3 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java @@ -52,7 +52,6 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B protected void initView() { format = new DecimalFormat("0.#"); mBinding.uaText.setText(Setting.getUa()); - mBinding.libassText.setText(getSwitch(Setting.isLibAss())); mBinding.tunnelText.setText(getSwitch(Setting.isTunnel())); mBinding.speedText.setText(format.format(Setting.getSpeed())); mBinding.bufferText.setText(String.valueOf(Setting.getBuffer())); @@ -73,7 +72,6 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B mBinding.scale.setOnClickListener(this::onScale); mBinding.speed.setOnClickListener(this::onSpeed); mBinding.buffer.setOnClickListener(this::onBuffer); - mBinding.libass.setOnClickListener(this::setLibAss); mBinding.render.setOnClickListener(this::setRender); mBinding.tunnel.setOnClickListener(this::setTunnel); mBinding.caption.setOnClickListener(this::setCaption); @@ -127,11 +125,6 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B Setting.putBuffer(times); } - private void setLibAss(View view) { - Setting.putLibAss(!Setting.isLibAss()); - mBinding.libassText.setText(getSwitch(Setting.isLibAss())); - } - private void setRender(View view) { int index = Setting.getRender(); Setting.putRender(index = index == render.length - 1 ? 0 : ++index); diff --git a/app/src/mobile/res/layout/fragment_setting_player.xml b/app/src/mobile/res/layout/fragment_setting_player.xml index 4369cf656..e78a558d5 100644 --- a/app/src/mobile/res/layout/fragment_setting_player.xml +++ b/app/src/mobile/res/layout/fragment_setting_player.xml @@ -123,35 +123,6 @@ - - - - - - - -