google / google/ExoPlayer

how to reset PlayerMessage on Page Reload

Open
#10,698 4 comments 0 reactions 1 assignee Assigned to @oceanjules View on GitHub
question
Dominant language
Java
Stars
21.9k
Forks
6k
PR merge metrics
No merged PRs in 30d

Description

I am creating a custom view by extending `StyledPlayerView` and adding that view to the xml. Also my PlayerView have callbacks on different timestamp that I am creating using `createMessage()`.

```
init {
controllerAutoShow = false
useController = false
resizeMode = AspectRatioFrameLayout.RESIZE_MODE_FILL
setUpVideoPlayer()
}

private fun setUpVideoPlayer() {
mVideoPlayer = ExoPlayer.Builder(context).build()
player = mVideoPlayer
videoPlayerError = VideoPlayerError()
setCallbacks()

// CODE BLOCK TO SET MEDIA FOR EXOPLAYER AND PREPARE & PLAY
}

private fun setCallback() {
for (event in EventMap) {
mPlayerMessageList.add(mVideoPlayer?.createMessage { value, payload ->
mEventCallback(EventCallback(eventType = eventType)
}
?.setLooper(Looper.getMainLooper())
?.setPosition( mediaFileIndex, position)
?.setPayload(beaconInfo)
?.setDeleteAfterDelivery(true)
?.send()
)
}
}
```

Now everything works fine for normal app function but on Page reload, I need to update all the data but I am not getting the events from `createMessage()`
I even tried re-initializing the whole player by

```
fun reInitializeExoplayer() {
if (mVideoPlayer != null && player != null) {
mVideoPlayer?.removeMediaItem(0)
mVideoPlayer?.let {
it.release()
player?.release()
mVideoPlayer = null
player = null
videoAnalyticsListener = null
}
setUpVideoPlayer()
}
}
```

I have tried many things but not able to work around this.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.