Merge pull request #3272 from parneet-guraya/issue/save-media-playback-state

Save media playback state
This commit is contained in:
Marcel Hibbe 2023-08-25 10:43:57 +02:00 committed by GitHub
commit 2c936aaf5b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,9 +4,11 @@
* @author Marcel Hibbe
* @author Andy Scherzinger
* @author Ezhil Shanmugham
* @author Parneet Singh
* Copyright (C) 2021 Andy Scherzinger <info@andy-scherzinger.de>
* Copyright (C) 2021 Marcel Hibbe <dev@mhibbe.de>
* Copyright (C) 2023 Ezhil Shanmugham <ezhil56x.contact@gmail.com>
* Copyright (c) 2023 Parneet Singh <gurayaparneet@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -51,7 +53,10 @@ class FullScreenMediaActivity : AppCompatActivity(), Player.Listener {
lateinit var binding: ActivityFullScreenMediaBinding
private lateinit var path: String
private lateinit var player: ExoPlayer
private var player: ExoPlayer? = null
private var playWhenReadyState: Boolean = true
private var playBackPosition: Long = 0L
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.menu_preview, menu)
@ -122,11 +127,7 @@ class FullScreenMediaActivity : AppCompatActivity(), Player.Listener {
override fun onStart() {
super.onStart()
initializePlayer()
val mediaItem: MediaItem = MediaItem.fromUri(path)
player.setMediaItem(mediaItem)
player.prepare()
player.play()
preparePlayer()
}
override fun onStop() {
@ -137,12 +138,26 @@ class FullScreenMediaActivity : AppCompatActivity(), Player.Listener {
private fun initializePlayer() {
player = ExoPlayer.Builder(applicationContext).build()
binding.playerView.player = player
player.playWhenReady = true
player.addListener(this)
player?.addListener(this)
}
private fun preparePlayer() {
val mediaItem: MediaItem = MediaItem.fromUri(path)
player?.let { exoPlayer ->
exoPlayer.setMediaItem(mediaItem)
exoPlayer.playWhenReady = playWhenReadyState
exoPlayer.seekTo(playBackPosition)
exoPlayer.prepare()
}
}
private fun releasePlayer() {
player.release()
player?.let { exoPlayer ->
playBackPosition = exoPlayer.currentPosition
playWhenReadyState = exoPlayer.playWhenReady
exoPlayer.release()
}
player = null
}
private fun hideSystemUI() {