[feat] Player Logic
This commit is contained in:
@@ -43,6 +43,7 @@ import androidx.compose.material.icons.filled.Lock
|
||||
import androidx.compose.material.icons.filled.LockOpen
|
||||
import androidx.compose.material.icons.filled.Pause
|
||||
import androidx.compose.material.icons.filled.PlayArrow
|
||||
import androidx.compose.material.icons.filled.SkipNext
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
import androidx.compose.material3.Icon
|
||||
@@ -472,6 +473,27 @@ fun VideoPlayerLandscape(videoPlayerViewModel: VideoPlayerViewModel) {
|
||||
)
|
||||
}
|
||||
|
||||
IconButton(
|
||||
onClick = {
|
||||
videoPlayerViewModel.viewModelScope.launch {
|
||||
videoPlayerViewModel.startPlay(
|
||||
videoPlayerViewModel.videos.getOrNull(videoPlayerViewModel.videos.indexOf(
|
||||
videoPlayerViewModel.videos.first {
|
||||
it.id == videoPlayerViewModel.currentId.value
|
||||
}) + 1) ?: videoPlayerViewModel.videos.first()
|
||||
)
|
||||
}
|
||||
},
|
||||
Modifier.size(42.dp)
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Default.SkipNext,
|
||||
contentDescription = "Next",
|
||||
tint = Color.White,
|
||||
modifier = Modifier.size(42.dp)
|
||||
)
|
||||
}
|
||||
|
||||
Spacer(Modifier.weight(1f))
|
||||
|
||||
IconButton(
|
||||
|
||||
@@ -16,6 +16,7 @@ import androidx.lifecycle.viewModelScope
|
||||
import androidx.media3.common.MediaItem
|
||||
import androidx.media3.common.PlaybackException
|
||||
import androidx.media3.common.Player
|
||||
import androidx.media3.common.Player.STATE_ENDED
|
||||
import androidx.media3.common.Player.STATE_READY
|
||||
import androidx.media3.common.Tracks
|
||||
import androidx.media3.common.text.Cue
|
||||
@@ -268,9 +269,19 @@ class VideoPlayerViewModel @Inject constructor(
|
||||
}
|
||||
|
||||
override fun onPlaybackStateChanged(playbackState: Int) {
|
||||
if (playbackState == STATE_READY) {
|
||||
when(playbackState)
|
||||
{
|
||||
STATE_READY -> {
|
||||
startPlaying = true
|
||||
}
|
||||
STATE_ENDED -> {
|
||||
player?.seekTo(0)
|
||||
player?.pause()
|
||||
}
|
||||
else -> {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onRenderedFirstFrame() {
|
||||
|
||||
Reference in New Issue
Block a user