mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-29 00:10:32 +05:30
commit
b9e5a1ca4b
@ -90,9 +90,7 @@ import kotlinx.coroutines.launch
|
||||
import org.chromium.net.CronetEngine
|
||||
import retrofit2.HttpException
|
||||
import java.io.IOException
|
||||
import java.util.*
|
||||
import java.util.concurrent.Executors
|
||||
import kotlin.collections.ArrayList
|
||||
import kotlin.math.abs
|
||||
|
||||
var isFullScreen = false
|
||||
@ -719,6 +717,29 @@ class PlayerFragment : Fragment() {
|
||||
initializeChapters()
|
||||
}
|
||||
|
||||
// set default playback speed
|
||||
val playbackSpeed =
|
||||
PreferenceHelper.getString(requireContext(), "playback_speed", "1F")!!
|
||||
val playbackSpeeds = context?.resources?.getStringArray(R.array.playbackSpeed)!!
|
||||
val playbackSpeedValues =
|
||||
context?.resources?.getStringArray(R.array.playbackSpeedValues)!!
|
||||
exoPlayer.setPlaybackSpeed(playbackSpeed.toFloat())
|
||||
val speedIndex = playbackSpeedValues.indexOf(playbackSpeed)
|
||||
playerBinding.speedText.text = playbackSpeeds[speedIndex]
|
||||
|
||||
// change playback speed button
|
||||
playerBinding.speedText.setOnClickListener {
|
||||
MaterialAlertDialogBuilder(requireContext())
|
||||
.setTitle(R.string.change_playback_speed)
|
||||
.setItems(playbackSpeeds) { _, index ->
|
||||
// set the new playback speed
|
||||
val newPlaybackSpeed = playbackSpeedValues[index].toFloat()
|
||||
exoPlayer.setPlaybackSpeed(newPlaybackSpeed)
|
||||
playerBinding.speedText.text = playbackSpeeds[index]
|
||||
}
|
||||
.show()
|
||||
}
|
||||
|
||||
// Listener for play and pause icon change
|
||||
exoPlayer.addListener(object : Player.Listener {
|
||||
override fun onIsPlayingChanged(isPlaying: Boolean) {
|
||||
@ -1095,7 +1116,7 @@ class PlayerFragment : Fragment() {
|
||||
}
|
||||
}
|
||||
|
||||
playerBinding.qualityLinLayout.setOnClickListener {
|
||||
playerBinding.qualityText.setOnClickListener {
|
||||
// Dialog for quality selection
|
||||
val builder: MaterialAlertDialogBuilder? = activity?.let {
|
||||
MaterialAlertDialogBuilder(it)
|
||||
@ -1130,13 +1151,8 @@ class PlayerFragment : Fragment() {
|
||||
}
|
||||
|
||||
private fun createExoPlayer(view: View) {
|
||||
val playbackSpeed =
|
||||
PreferenceHelper.getString(requireContext(), "playback_speed", "1F")?.toFloat()
|
||||
// multiply by thousand: s -> ms
|
||||
val bufferingGoal =
|
||||
PreferenceHelper.getString(requireContext(), "buffering_goal", "50")?.toInt()!! * 1000
|
||||
val seekIncrement =
|
||||
PreferenceHelper.getString(requireContext(), "seek_increment", "5")?.toLong()!! * 1000
|
||||
|
||||
val cronetEngine: CronetEngine = CronetHelper.getCronetEngine()
|
||||
val cronetDataSourceFactory: CronetDataSource.Factory =
|
||||
@ -1168,13 +1184,9 @@ class PlayerFragment : Fragment() {
|
||||
exoPlayer = ExoPlayer.Builder(view.context)
|
||||
.setMediaSourceFactory(DefaultMediaSourceFactory(dataSourceFactory))
|
||||
.setLoadControl(loadControl)
|
||||
.setSeekBackIncrementMs(seekIncrement)
|
||||
.setSeekForwardIncrementMs(seekIncrement)
|
||||
.build()
|
||||
|
||||
exoPlayer.setAudioAttributes(audioAttributes, true)
|
||||
|
||||
exoPlayer.setPlaybackSpeed(playbackSpeed!!)
|
||||
}
|
||||
|
||||
private fun initializePlayerNotification(c: Context) {
|
||||
|
@ -74,34 +74,31 @@
|
||||
android:id="@+id/aspect_ratio_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:layout_marginHorizontal="5dp"
|
||||
android:background="#00FFFFFF"
|
||||
android:padding="@dimen/exo_icon_padding"
|
||||
android:src="@drawable/ic_aspect_ratio" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/quality_linLayout"
|
||||
<TextView
|
||||
android:id="@+id/speed_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="5dp"
|
||||
android:layout_gravity="center"
|
||||
android:padding="@dimen/exo_icon_padding"
|
||||
android:text="1x"
|
||||
android:textColor="#FFFFFF" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/quality_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:padding="@dimen/exo_icon_padding"
|
||||
android:text="@string/hls"
|
||||
android:textColor="#FFFFFF" />
|
||||
<TextView
|
||||
android:id="@+id/quality_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="5dp"
|
||||
android:layout_gravity="center"
|
||||
android:padding="@dimen/exo_icon_padding"
|
||||
android:text="@string/hls"
|
||||
android:textColor="#FFFFFF" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/quality_select"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/exo_icon_padding"
|
||||
android:src="@drawable/ic_arrow_down"
|
||||
app:tint="@android:color/white" />
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
@ -183,10 +180,6 @@
|
||||
android:id="@id/exo_subtitle"
|
||||
style="@style/ExoStyledControls.Button.Bottom.CC" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@id/exo_settings"
|
||||
style="@style/ExoStyledControls.Button.Bottom.Settings" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/fullscreen"
|
||||
style="@style/ExoStyledControls.Button.Bottom.FullScreen"
|
||||
|
@ -357,7 +357,7 @@
|
||||
android:id="@+id/player"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/colorSurface"
|
||||
android:background="@android:color/black"
|
||||
app:layout_constraintBottom_toBottomOf="@id/main_container"
|
||||
app:layout_constraintStart_toStartOf="@id/main_container"
|
||||
app:layout_constraintTop_toTopOf="@id/main_container"
|
||||
|
@ -230,4 +230,5 @@
|
||||
<string name="turnInternetOn">Please connect to the internet by turning on WiFi or mobile data.</string>
|
||||
<string name="open">Open …</string>
|
||||
<string name="chapters">Chapters</string>
|
||||
<string name="change_playback_speed">Playback speed</string>
|
||||
</resources>
|
Loading…
x
Reference in New Issue
Block a user