mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
Remember the listener
This commit is contained in:
committed by
Benoit Marty
parent
497e5fdcf7
commit
e42846aa3e
+24
-22
@@ -131,30 +131,32 @@ private fun ExoPlayerMediaAudioView(
|
|||||||
|
|
||||||
localMediaViewState.playableState = playableState
|
localMediaViewState.playableState = playableState
|
||||||
|
|
||||||
val playerListener = object : Player.Listener {
|
val playerListener = remember {
|
||||||
override fun onRenderedFirstFrame() {
|
object : Player.Listener {
|
||||||
localMediaViewState.isReady = true
|
override fun onRenderedFirstFrame() {
|
||||||
}
|
localMediaViewState.isReady = true
|
||||||
|
|
||||||
override fun onIsPlayingChanged(isPlaying: Boolean) {
|
|
||||||
mediaPlayerControllerState = mediaPlayerControllerState.copy(
|
|
||||||
isPlaying = isPlaying,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onTimelineChanged(timeline: Timeline, reason: Int) {
|
|
||||||
if (reason == Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE) {
|
|
||||||
exoPlayer.duration.takeIf { it >= 0 }
|
|
||||||
?.let {
|
|
||||||
mediaPlayerControllerState = mediaPlayerControllerState.copy(
|
|
||||||
durationInMillis = it,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
override fun onMediaMetadataChanged(mediaMetadata: MediaMetadata) {
|
override fun onIsPlayingChanged(isPlaying: Boolean) {
|
||||||
metadata = mediaMetadata
|
mediaPlayerControllerState = mediaPlayerControllerState.copy(
|
||||||
|
isPlaying = isPlaying,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onTimelineChanged(timeline: Timeline, reason: Int) {
|
||||||
|
if (reason == Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE) {
|
||||||
|
exoPlayer.duration.takeIf { it >= 0 }
|
||||||
|
?.let {
|
||||||
|
mediaPlayerControllerState = mediaPlayerControllerState.copy(
|
||||||
|
durationInMillis = it,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onMediaMetadataChanged(mediaMetadata: MediaMetadata) {
|
||||||
|
metadata = mediaMetadata
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+24
-22
@@ -102,31 +102,33 @@ private fun ExoPlayerMediaVideoView(
|
|||||||
|
|
||||||
localMediaViewState.playableState = playableState
|
localMediaViewState.playableState = playableState
|
||||||
|
|
||||||
val playerListener = object : Player.Listener {
|
val playerListener = remember {
|
||||||
override fun onRenderedFirstFrame() {
|
object : Player.Listener {
|
||||||
localMediaViewState.isReady = true
|
override fun onRenderedFirstFrame() {
|
||||||
}
|
localMediaViewState.isReady = true
|
||||||
|
}
|
||||||
|
|
||||||
override fun onIsPlayingChanged(isPlaying: Boolean) {
|
override fun onIsPlayingChanged(isPlaying: Boolean) {
|
||||||
mediaPlayerControllerState = mediaPlayerControllerState.copy(
|
mediaPlayerControllerState = mediaPlayerControllerState.copy(
|
||||||
isPlaying = isPlaying,
|
isPlaying = isPlaying,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onVolumeChanged(volume: Float) {
|
override fun onVolumeChanged(volume: Float) {
|
||||||
mediaPlayerControllerState = mediaPlayerControllerState.copy(
|
mediaPlayerControllerState = mediaPlayerControllerState.copy(
|
||||||
isMuted = volume == 0f,
|
isMuted = volume == 0f,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onTimelineChanged(timeline: Timeline, reason: Int) {
|
override fun onTimelineChanged(timeline: Timeline, reason: Int) {
|
||||||
if (reason == Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE) {
|
if (reason == Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE) {
|
||||||
exoPlayer.duration.takeIf { it >= 0 }
|
exoPlayer.duration.takeIf { it >= 0 }
|
||||||
?.let {
|
?.let {
|
||||||
mediaPlayerControllerState = mediaPlayerControllerState.copy(
|
mediaPlayerControllerState = mediaPlayerControllerState.copy(
|
||||||
durationInMillis = it,
|
durationInMillis = it,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user