From d7257899b91e1525fc4ed69b9a88f0743851ec90 Mon Sep 17 00:00:00 2001 From: amarullz Date: Thu, 18 Apr 2024 18:45:56 +0700 Subject: [PATCH] Add exoplayer playback listener --- app/build.gradle | 2 +- .../androidtv/animetvjmto/AnimeView.java | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index ea20f1de..38f71e1c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdk 22 targetSdk 34 versionCode 405 - versionName "4.1.9-Nightly" + versionName "4.2.1-Nightly" // Automatic Build Version buildConfigField "long", "TIMESTAMP", System.currentTimeMillis() + "L" diff --git a/app/src/main/java/com/amarullz/androidtv/animetvjmto/AnimeView.java b/app/src/main/java/com/amarullz/androidtv/animetvjmto/AnimeView.java index 5854e3ac..b75f1674 100644 --- a/app/src/main/java/com/amarullz/androidtv/animetvjmto/AnimeView.java +++ b/app/src/main/java/com/amarullz/androidtv/animetvjmto/AnimeView.java @@ -46,10 +46,13 @@ import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import androidx.media3.common.MediaItem; +import androidx.media3.common.Tracks; import androidx.media3.common.util.UnstableApi; import androidx.media3.datasource.DefaultHttpDataSource; +import androidx.media3.exoplayer.analytics.AnalyticsListener; import androidx.media3.exoplayer.dash.DashMediaSource; import androidx.media3.exoplayer.source.MediaSource; +import androidx.media3.exoplayer.source.ProgressiveMediaSource; import com.devbrackets.android.exomedia.core.source.data.DataSourceFactoryProvider; import com.devbrackets.android.exomedia.core.video.scale.MatrixManager; @@ -382,6 +385,20 @@ else if (host.contains(Conf.STREAM_DOMAIN3)){ videoPlayer.setSurface(videoView.getHolder().getSurface()); videoPlayer.setVideoSizeListener(videoSize -> videoViewEnvelope.setVideoSize(videoSize.width, videoSize.height, videoSize.pixelWidthHeightRatio)); + videoPlayer.addAnalyticsListener(new AnalyticsListener() { + @Override + public void onPlaybackStateChanged(EventTime eventTime, int state) { + AnalyticsListener.super.onPlaybackStateChanged(eventTime, state); + Log.d(_TAG, "ANL: onPlaybackStateChanged="+state); + } + + @Override + public void onTracksChanged(EventTime eventTime, Tracks tracks) { + AnalyticsListener.super.onTracksChanged(eventTime, tracks); + + Log.d(_TAG, "ANL: TrackChanged="+tracks); + } + }); } public void videoSetSource(String url){ @@ -397,6 +414,14 @@ public void videoSetSource(String url){ .createMediaSource(MediaItem.fromUri(url)); videoPlayer.setMediaSource(mediaSource); } + else if (url.endsWith(".mkv")) { + Log.d(_TAG,"VIDEO-SET-SOURCE (MKV) : "+url); + MediaSource mediaSource = + new ProgressiveMediaSource.Factory(videoDataSourceFactory.provide("" + , null)) + .createMediaSource(MediaItem.fromUri(url)); + videoPlayer.setMediaSource(mediaSource); + } else { Log.d(_TAG,"VIDEO-SET-SOURCE (HLS) : "+url); videoPlayer.setMediaUri(Uri.parse(url));