diff --git a/app/build.gradle b/app/build.gradle index ae1ea9393..92af06819 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -121,7 +121,6 @@ dependencies { implementation 'androidx.biometric:biometric:1.1.0' implementation 'androidx.room:room-runtime:2.6.1' implementation 'androidx.media:media:1.7.0' - implementation ('com.github.anilbeesetti.nextlib:nextlib-media3ext:0.7.1') { exclude group: 'androidx.media3', module: 'media3-exoplayer' } implementation 'cat.ereza:customactivityoncrash:2.4.0' implementation 'com.github.bassaer:materialdesigncolors:1.0.0' implementation 'com.github.bumptech.glide:glide:4.16.0' diff --git a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java index 53e968f64..28138e0b8 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java @@ -44,8 +44,6 @@ import com.fongmi.android.tv.bean.Channel; import com.fongmi.android.tv.bean.Drm; import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.bean.Sub; -import com.fongmi.android.tv.player.custom.NextRenderersFactory; -import com.fongmi.android.tv.utils.Sniffer; import com.fongmi.android.tv.utils.UrlUtil; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Path; @@ -77,7 +75,7 @@ public class ExoUtil { } public static RenderersFactory buildRenderersFactory(int decode) { - return new NextRenderersFactory(App.get()).setEnableDecoderFallback(true).setExtensionRendererMode(decode == Players.SOFT ? DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER : DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON); + return new DefaultRenderersFactory(App.get()).setEnableDecoderFallback(true).setExtensionRendererMode(decode == Players.SOFT ? DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER : DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON); } public static CaptionStyleCompat getCaptionStyle() { @@ -159,7 +157,7 @@ public class ExoUtil { if (mimeType != null) builder.setMimeType(mimeType); builder.setAllowChunklessPreparation(decode == Players.HARD); builder.setForceUseRtpTcp(Setting.getRtsp() == 1); - builder.setAds(Setting.isRemoveAd() ? Arrays.asList("9999") : Sniffer.getRegex(uri)); + builder.setAds(Arrays.asList("9999")); return builder.build(); } diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index 463b984f7..5b8afb95d 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -17,7 +17,6 @@ import androidx.annotation.NonNull; import androidx.media3.common.AudioAttributes; import androidx.media3.common.PlaybackException; import androidx.media3.common.Player; -import androidx.media3.common.VideoSize; import androidx.media3.exoplayer.ExoPlayer; import androidx.media3.exoplayer.analytics.AnalyticsListener; import androidx.media3.exoplayer.util.EventLogger; diff --git a/app/src/main/java/com/fongmi/android/tv/player/custom/NextRenderersFactory.java b/app/src/main/java/com/fongmi/android/tv/player/custom/NextRenderersFactory.java deleted file mode 100644 index f4d01fefa..000000000 --- a/app/src/main/java/com/fongmi/android/tv/player/custom/NextRenderersFactory.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.fongmi.android.tv.player.custom; - -import android.content.Context; -import android.os.Handler; - -import androidx.annotation.NonNull; -import androidx.media3.common.util.Log; -import androidx.media3.exoplayer.DefaultRenderersFactory; -import androidx.media3.exoplayer.Renderer; -import androidx.media3.exoplayer.audio.AudioRendererEventListener; -import androidx.media3.exoplayer.audio.AudioSink; -import androidx.media3.exoplayer.mediacodec.MediaCodecSelector; -import androidx.media3.exoplayer.video.VideoRendererEventListener; - -import java.util.ArrayList; - -import io.github.anilbeesetti.nextlib.media3ext.ffdecoder.FfmpegAudioRenderer; -import io.github.anilbeesetti.nextlib.media3ext.ffdecoder.FfmpegVideoRenderer; - -public class NextRenderersFactory extends DefaultRenderersFactory { - - private static final String TAG = NextRenderersFactory.class.getSimpleName(); - - public NextRenderersFactory(@NonNull Context context) { - super(context); - } - - @Override - protected void buildAudioRenderers(@NonNull Context context, int extensionRendererMode, @NonNull MediaCodecSelector mediaCodecSelector, boolean enableDecoderFallback, @NonNull AudioSink audioSink, @NonNull Handler eventHandler, @NonNull AudioRendererEventListener eventListener, @NonNull ArrayList out) { - super.buildAudioRenderers(context, extensionRendererMode, mediaCodecSelector, enableDecoderFallback, audioSink, eventHandler, eventListener, out); - int extensionRendererIndex = out.size(); - if (extensionRendererMode == EXTENSION_RENDERER_MODE_PREFER) { - extensionRendererIndex--; - } - try { - Renderer renderer = new FfmpegAudioRenderer(eventHandler, eventListener, audioSink); - out.add(extensionRendererIndex++, renderer); - Log.i(TAG, "Loaded FfmpegAudioRenderer."); - } catch (Exception e) { - throw new RuntimeException("Error instantiating Ffmpeg extension", e); - } - } - - @Override - protected void buildVideoRenderers(@NonNull Context context, int extensionRendererMode, @NonNull MediaCodecSelector mediaCodecSelector, boolean enableDecoderFallback, @NonNull Handler eventHandler, @NonNull VideoRendererEventListener eventListener, long allowedVideoJoiningTimeMs, @NonNull ArrayList out) { - super.buildVideoRenderers(context, extensionRendererMode, mediaCodecSelector, enableDecoderFallback, eventHandler, eventListener, allowedVideoJoiningTimeMs, out); - int extensionRendererIndex = out.size(); - try { - Renderer renderer = new FfmpegVideoRenderer(allowedVideoJoiningTimeMs, eventHandler, eventListener, MAX_DROPPED_VIDEO_FRAME_COUNT_TO_NOTIFY); - out.add(extensionRendererIndex++, renderer); - Log.i(TAG, "Loaded FfmpegVideoRenderer."); - } catch (Exception e) { - throw new RuntimeException("Error instantiating Ffmpeg extension", e); - } - } -} 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 c21923e29..4d1c14abc 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 @@ -104,6 +104,11 @@ public class AndroidTrackInfo implements ITrackInfo { @Override public float getFps() { if (mTrackInfo == null || mTrackInfo.getFormat() == null) return 0; - return mTrackInfo.getFormat().getFloat(MediaFormat.KEY_MAX_FPS_TO_ENCODER); + try { + return mTrackInfo.getFormat().getFloat(MediaFormat.KEY_MAX_FPS_TO_ENCODER); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } } } \ No newline at end of file