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 @@
-
-
-
-
-
-
-
-