From c858d556d511008a81e2d74a3dc582deae472f42 Mon Sep 17 00:00:00 2001 From: Hardcore Sushi Date: Sun, 17 Oct 2021 19:43:03 +0200 Subject: [PATCH] Exoplayer repeat & shuffle controls --- .../droidfs/file_viewers/MediaPlayer.kt | 18 +---- .../main/res/layout/activity_audio_player.xml | 4 +- .../main/res/layout/activity_video_player.xml | 5 +- .../res/layout/exo_player_control_view.xml | 73 +++++++++++++++++++ 4 files changed, 83 insertions(+), 17 deletions(-) create mode 100644 app/src/main/res/layout/exo_player_control_view.xml diff --git a/app/src/main/java/sushi/hardcore/droidfs/file_viewers/MediaPlayer.kt b/app/src/main/java/sushi/hardcore/droidfs/file_viewers/MediaPlayer.kt index 4a1dd40..7be6f3b 100644 --- a/app/src/main/java/sushi/hardcore/droidfs/file_viewers/MediaPlayer.kt +++ b/app/src/main/java/sushi/hardcore/droidfs/file_viewers/MediaPlayer.kt @@ -2,13 +2,7 @@ package sushi.hardcore.droidfs.file_viewers import android.view.WindowManager import com.google.android.exoplayer2.* -import com.google.android.exoplayer2.extractor.ExtractorsFactory -import com.google.android.exoplayer2.extractor.flac.FlacExtractor -import com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor -import com.google.android.exoplayer2.extractor.mp3.Mp3Extractor -import com.google.android.exoplayer2.extractor.mp4.Mp4Extractor -import com.google.android.exoplayer2.extractor.ogg.OggExtractor -import com.google.android.exoplayer2.extractor.wav.WavExtractor +import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory import com.google.android.exoplayer2.source.MediaSource import com.google.android.exoplayer2.source.ProgressiveMediaSource import sushi.hardcore.droidfs.ConstValues @@ -28,14 +22,8 @@ abstract class MediaPlayer: FileViewerActivity() { private fun createMediaSource(filePath: String): MediaSource { val dataSourceFactory = GocryptfsDataSource.Factory(gocryptfsVolume, filePath) - return ProgressiveMediaSource.Factory(dataSourceFactory, ExtractorsFactory { arrayOf( - MatroskaExtractor(), - Mp4Extractor(), - Mp3Extractor(), - OggExtractor(), - WavExtractor(), - FlacExtractor() - ) }).createMediaSource(MediaItem.fromUri(ConstValues.fakeUri)) + return ProgressiveMediaSource.Factory(dataSourceFactory, DefaultExtractorsFactory()) + .createMediaSource(MediaItem.fromUri(ConstValues.fakeUri)) } private fun initializePlayer(){ diff --git a/app/src/main/res/layout/activity_audio_player.xml b/app/src/main/res/layout/activity_audio_player.xml index 33f5ee9..b84fd07 100644 --- a/app/src/main/res/layout/activity_audio_player.xml +++ b/app/src/main/res/layout/activity_audio_player.xml @@ -19,6 +19,8 @@ android:id="@+id/audio_controller" android:layout_width="wrap_content" android:layout_height="wrap_content" - app:show_timeout="0"/> + app:show_timeout="0" + app:show_shuffle_button="true" + app:repeat_toggle_modes="all|one"/> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_video_player.xml b/app/src/main/res/layout/activity_video_player.xml index cefc138..e50d331 100644 --- a/app/src/main/res/layout/activity_video_player.xml +++ b/app/src/main/res/layout/activity_video_player.xml @@ -2,6 +2,7 @@ @@ -9,6 +10,8 @@ android:id="@+id/video_player" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_gravity="center"/> + android:layout_gravity="center" + app:show_shuffle_button="true" + app:repeat_toggle_modes="all|one"/> \ No newline at end of file diff --git a/app/src/main/res/layout/exo_player_control_view.xml b/app/src/main/res/layout/exo_player_control_view.xml new file mode 100644 index 0000000..7d169ba --- /dev/null +++ b/app/src/main/res/layout/exo_player_control_view.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file