release
FongMi 1 year ago
parent 6891ef8098
commit 320aebbf72
  1. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java
  2. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  3. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  4. 12
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  5. 8
      app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java
  6. 3
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  7. 3
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java

@ -321,7 +321,8 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
private void onCheck(ErrorEvent event) {
if (event.getCode() == PlaybackException.ERROR_CODE_IO_UNSPECIFIED || event.getCode() >= PlaybackException.ERROR_CODE_PARSING_CONTAINER_MALFORMED && event.getCode() <= PlaybackException.ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED) mPlayers.setFormat(ExoUtil.getMimeType(event.getCode()));
else if (event.getCode() == PlaybackException.ERROR_CODE_BEHIND_LIVE_WINDOW) mPlayers.seekTo(C.TIME_UNSET);
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODER_INIT_FAILED) onDecode();
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODER_INIT_FAILED) mPlayers.init(mBinding.exo);
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODING_FAILED && mPlayers.isHard()) onDecode();
else onError(event);
}

@ -745,7 +745,8 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void onCheck(ErrorEvent event) {
if (event.getCode() == PlaybackException.ERROR_CODE_IO_UNSPECIFIED || event.getCode() >= PlaybackException.ERROR_CODE_PARSING_CONTAINER_MALFORMED && event.getCode() <= PlaybackException.ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED) mPlayers.setFormat(ExoUtil.getMimeType(event.getCode()));
else if (event.getCode() == PlaybackException.ERROR_CODE_BEHIND_LIVE_WINDOW) mPlayers.seekTo(C.TIME_UNSET);
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODER_INIT_FAILED) onDecode();
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODER_INIT_FAILED) mPlayers.init(mBinding.exo);
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODING_FAILED && mPlayers.isHard()) onDecode();
else onError(event);
}

@ -1097,7 +1097,8 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
private void onCheck(ErrorEvent event) {
if (event.getCode() == PlaybackException.ERROR_CODE_IO_UNSPECIFIED || event.getCode() >= PlaybackException.ERROR_CODE_PARSING_CONTAINER_MALFORMED && event.getCode() <= PlaybackException.ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED) mPlayers.setFormat(ExoUtil.getMimeType(event.getCode()));
else if (event.getCode() == PlaybackException.ERROR_CODE_BEHIND_LIVE_WINDOW) mPlayers.seekTo(C.TIME_UNSET);
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODER_INIT_FAILED) onDecode();
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODER_INIT_FAILED) mPlayers.init(mBinding.exo);
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODING_FAILED && mPlayers.isHard()) onDecode();
else onError(event);
}

@ -1,5 +1,8 @@
package com.fongmi.android.tv.player;
import static androidx.media3.exoplayer.DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON;
import static androidx.media3.exoplayer.DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
@ -87,10 +90,6 @@ public class Players implements Player.Listener, ParseCallback {
return player;
}
public static boolean isHard(int decode) {
return decode == HARD;
}
private Players(Activity activity) {
decode = Setting.getDecode();
builder = new StringBuilder();
@ -115,7 +114,7 @@ public class Players implements Player.Listener, ParseCallback {
}
private void initExo(PlayerView exo) {
exoPlayer = new ExoPlayer.Builder(App.get()).setLoadControl(ExoUtil.buildLoadControl()).setTrackSelector(ExoUtil.buildTrackSelector()).setRenderersFactory(ExoUtil.buildRenderersFactory(decode)).setMediaSourceFactory(ExoUtil.buildMediaSourceFactory()).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);
exoPlayer.addAnalyticsListener(new EventLogger());
exoPlayer.setHandleAudioBecomingNoisy(true);
@ -281,7 +280,8 @@ public class Players implements Player.Listener, ParseCallback {
}
public void toggleDecode(PlayerView exo) {
Setting.putDecode(decode = isHard() ? SOFT : HARD);
decode = isHard() ? SOFT : HARD;
Setting.putDecode(decode);
init(exo);
}

@ -1,8 +1,5 @@
package com.fongmi.android.tv.player.exo;
import static androidx.media3.exoplayer.DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON;
import static androidx.media3.exoplayer.DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER;
import android.content.Context;
import android.graphics.Color;
import android.net.Uri;
@ -32,7 +29,6 @@ import com.fongmi.android.tv.BuildConfig;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.bean.Drm;
import com.fongmi.android.tv.bean.Sub;
import com.fongmi.android.tv.player.Players;
import com.fongmi.android.tv.utils.Sniffer;
import java.util.ArrayList;
@ -56,8 +52,8 @@ public class ExoUtil {
return trackSelector;
}
public static RenderersFactory buildRenderersFactory(int decode) {
return new DefaultRenderersFactory(App.get()).setEnableDecoderFallback(true).setExtensionRendererMode(Players.isHard(decode) ? EXTENSION_RENDERER_MODE_ON : EXTENSION_RENDERER_MODE_PREFER);
public static RenderersFactory buildRenderersFactory(int renderMode) {
return new DefaultRenderersFactory(App.get()).setEnableDecoderFallback(true).setExtensionRendererMode(renderMode);
}
public static MediaSource.Factory buildMediaSourceFactory() {

@ -798,7 +798,8 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
private void onCheck(ErrorEvent event) {
if (event.getCode() == PlaybackException.ERROR_CODE_IO_UNSPECIFIED || event.getCode() >= PlaybackException.ERROR_CODE_PARSING_CONTAINER_MALFORMED && event.getCode() <= PlaybackException.ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED) mPlayers.setFormat(ExoUtil.getMimeType(event.getCode()));
else if (event.getCode() == PlaybackException.ERROR_CODE_BEHIND_LIVE_WINDOW) mPlayers.seekTo(C.TIME_UNSET);
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODER_INIT_FAILED) onDecode();
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODER_INIT_FAILED) mPlayers.init(mBinding.exo);
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODING_FAILED && mPlayers.isHard()) onDecode();
else onError(event);
}

@ -1155,7 +1155,8 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private void onCheck(ErrorEvent event) {
if (event.getCode() == PlaybackException.ERROR_CODE_IO_UNSPECIFIED || event.getCode() >= PlaybackException.ERROR_CODE_PARSING_CONTAINER_MALFORMED && event.getCode() <= PlaybackException.ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED) mPlayers.setFormat(ExoUtil.getMimeType(event.getCode()));
else if (event.getCode() == PlaybackException.ERROR_CODE_BEHIND_LIVE_WINDOW) mPlayers.seekTo(C.TIME_UNSET);
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODER_INIT_FAILED) onDecode();
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODER_INIT_FAILED) mPlayers.init(mBinding.exo);
else if (event.getCode() == PlaybackException.ERROR_CODE_DECODING_FAILED && mPlayers.isHard()) onDecode();
else onError(event);
}

Loading…
Cancel
Save