pull/497/head
FongMi 2 years ago
parent d2d9524091
commit df27337880
  1. 2
      app/build.gradle
  2. 1
      app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java
  3. 56
      app/src/main/java/com/fongmi/android/tv/player/custom/NextRenderersFactory.java
  4. 2
      app/src/main/java/com/fongmi/android/tv/player/custom/TrackNameProvider.java
  5. 2
      app/src/main/java/com/fongmi/android/tv/ui/dialog/TrackDialog.java

@ -14,7 +14,7 @@ android {
//noinspection ExpiredTargetSdkVersion //noinspection ExpiredTargetSdkVersion
targetSdk 28 targetSdk 28
versionCode 237 versionCode 237
versionName "0605v3" versionName "0606"
javaCompileOptions { javaCompileOptions {
annotationProcessorOptions { annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]

@ -43,6 +43,7 @@ import com.fongmi.android.tv.bean.Channel;
import com.fongmi.android.tv.bean.Drm; import com.fongmi.android.tv.bean.Drm;
import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.bean.Result;
import com.fongmi.android.tv.bean.Sub; 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.Sniffer;
import com.fongmi.android.tv.utils.UrlUtil; import com.fongmi.android.tv.utils.UrlUtil;
import com.github.catvod.net.OkHttp; import com.github.catvod.net.OkHttp;

@ -0,0 +1,56 @@
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<Renderer> 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<Renderer> 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);
}
}
}

@ -1,4 +1,4 @@
package com.fongmi.android.tv.player; package com.fongmi.android.tv.player.custom;
import android.content.res.Resources; import android.content.res.Resources;
import android.text.TextUtils; import android.text.TextUtils;

@ -20,7 +20,7 @@ import com.fongmi.android.tv.bean.Sub;
import com.fongmi.android.tv.bean.Track; import com.fongmi.android.tv.bean.Track;
import com.fongmi.android.tv.databinding.DialogTrackBinding; import com.fongmi.android.tv.databinding.DialogTrackBinding;
import com.fongmi.android.tv.player.Players; import com.fongmi.android.tv.player.Players;
import com.fongmi.android.tv.player.TrackNameProvider; import com.fongmi.android.tv.player.custom.TrackNameProvider;
import com.fongmi.android.tv.ui.adapter.TrackAdapter; import com.fongmi.android.tv.ui.adapter.TrackAdapter;
import com.fongmi.android.tv.ui.custom.SpaceItemDecoration; import com.fongmi.android.tv.ui.custom.SpaceItemDecoration;
import com.fongmi.android.tv.utils.FileChooser; import com.fongmi.android.tv.utils.FileChooser;

Loading…
Cancel
Save