From 1118c8339ce7c5f463dd885df441504e492801cb Mon Sep 17 00:00:00 2001 From: Jannik Date: Thu, 5 Nov 2020 20:07:41 +0100 Subject: [PATCH] custom player interface: add progress-bar, rewind/forward --- app/build.gradle | 2 +- .../java/org/mosad/teapod/PlayerActivity.kt | 23 +++++++++++++-- .../exo_styled_controls_fastforward.xml | 15 ++++++++++ .../drawable/exo_styled_controls_rewind.xml | 15 ++++++++++ app/src/main/res/layout/activity_player.xml | 4 +-- app/src/main/res/layout/player_controls.xml | 29 +++++-------------- app/src/main/res/values/styles.xml | 2 ++ 7 files changed, 64 insertions(+), 26 deletions(-) create mode 100644 app/src/main/res/drawable/exo_styled_controls_fastforward.xml create mode 100644 app/src/main/res/drawable/exo_styled_controls_rewind.xml diff --git a/app/build.gradle b/app/build.gradle index 346a840..9de2431 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdkVersion 23 targetSdkVersion 30 versionCode 1000 //00.01.0000 - versionName "0.1.0" + versionName "0.2.0-beta1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" resValue "string", "build_time", buildTime() diff --git a/app/src/main/java/org/mosad/teapod/PlayerActivity.kt b/app/src/main/java/org/mosad/teapod/PlayerActivity.kt index 9d4a3b6..091159f 100644 --- a/app/src/main/java/org/mosad/teapod/PlayerActivity.kt +++ b/app/src/main/java/org/mosad/teapod/PlayerActivity.kt @@ -17,7 +17,7 @@ import com.google.android.exoplayer2.upstream.DataSource import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory import com.google.android.exoplayer2.util.Util import kotlinx.android.synthetic.main.activity_player.* - +import kotlinx.android.synthetic.main.player_controls.* class PlayerActivity : AppCompatActivity() { @@ -30,6 +30,8 @@ class PlayerActivity : AppCompatActivity() { private var currentWindow = 0 private var playbackPosition: Long = 0 + private val rwdTime = 10000 + private val fwdTime = 10000 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -41,8 +43,9 @@ class PlayerActivity : AppCompatActivity() { playbackPosition = it.getLong(getString(R.string.state_resume_position)) playWhenReady = it.getBoolean(getString(R.string.state_is_playing)) } - streamUrl = intent.getStringExtra(getString(R.string.intent_stream_url)).toString() + + initActions() } @@ -112,6 +115,12 @@ class PlayerActivity : AppCompatActivity() { ExoPlayer.STATE_BUFFERING -> View.VISIBLE else -> View.GONE } + + exo_play_pause.visibility = when (loading.visibility) { + View.GONE -> View.VISIBLE + View.VISIBLE -> View.INVISIBLE + else -> View.VISIBLE + } } }) @@ -123,6 +132,16 @@ class PlayerActivity : AppCompatActivity() { video_view.player = player } + private fun initActions() { + exo_rew_10.setOnClickListener { + player.seekTo(player.currentPosition - rwdTime) + } + + exo_ffwd_10.setOnClickListener { + player.seekTo(player.currentPosition + fwdTime) + } + } + private fun releasePlayer(){ playbackPosition = player.currentPosition currentWindow = player.currentWindowIndex diff --git a/app/src/main/res/drawable/exo_styled_controls_fastforward.xml b/app/src/main/res/drawable/exo_styled_controls_fastforward.xml new file mode 100644 index 0000000..6f2ad69 --- /dev/null +++ b/app/src/main/res/drawable/exo_styled_controls_fastforward.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/exo_styled_controls_rewind.xml b/app/src/main/res/drawable/exo_styled_controls_rewind.xml new file mode 100644 index 0000000..02d1559 --- /dev/null +++ b/app/src/main/res/drawable/exo_styled_controls_rewind.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/layout/activity_player.xml b/app/src/main/res/layout/activity_player.xml index 573765c..0b25163 100644 --- a/app/src/main/res/layout/activity_player.xml +++ b/app/src/main/res/layout/activity_player.xml @@ -14,8 +14,8 @@ android:layout_height="match_parent" android:layout_gravity="center" app:fastforward_increment="10000" - app:rewind_increment="10000"/> - + app:rewind_increment="10000" + app:controller_layout_id="@layout/player_controls"/> + android:layout_width="42dp" + android:layout_height="42dp" + android:tint="@color/exo_white"/> + + android:layout_width="42dp" + android:layout_height="42dp" /> - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 240e99c..78f74ec 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -12,6 +12,8 @@ false true @null + true + true