Oluwafemi Ogundipe
09/27/2023, 10:20 AMfun VideoPreviewScreen(
uri: String,
) {
val exoPlayer = remember(context) {
ExoPlayer.Builder(context).build().apply {
setMediaItem(MediaItem.fromUri(uri))
prepare()
}
}
Box{
AndroidView(
factory = { context ->
PlayerView(context).apply {
player = exoPlayer
exoPlayer.play()
exoPlayer.addListener(object : Player.Listener {
override fun onPlaybackStateChanged(state: Int) {
super.onPlaybackStateChanged(state)
when (state) {
Player.STATE_READY -> {
if (shouldSetOnReady) {
startTime.value = 0f
endTime.value =
exoPlayer.contentDuration.toFloat()
shouldSetOnReady = false
}
}
Player.STATE_BUFFERING -> {
}
Player.STATE_ENDED -> {
}
Player.STATE_IDLE -> {
}
else -> {
}
}
}
})
exoPlayer.prepare()
exoPlayer.play()
}
},
update = {
},
)
}
}
But the app crashes sometimes with this error
FATAL EXCEPTION: main
Process: com.playcenter.callerview, PID: 11962
LiveEdit: Could not invoke method 'onEvents(Landroidx/media3/common/Player;Landroidx/media3/common/Player$Events;)V'
java.lang.NullPointerException: null receiver
at com.android.tools.deploy.liveedit.ProxyClassHandler.invokeMethod(ProxyClassHandler.java:101)
at com.android.tools.deploy.liveedit.ProxyClassHandler.invoke(ProxyClassHandler.java:126)
at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
at $Proxy7.onEvents(Unknown Source)
at androidx.media3.exoplayer.ExoPlayerImpl.lambda$new$0$androidx-media3-exoplayer-ExoPlayerImpl(ExoPlayerImpl.java:281)
at androidx.media3.exoplayer.ExoPlayerImpl$$ExternalSyntheticLambda12.invoke(Unknown Source:4)
at androidx.media3.common.util.ListenerSet$ListenerHolder.iterationFinished(ListenerSet.java:350)
at androidx.media3.common.util.ListenerSet.handleMessage(ListenerSet.java:294)
at androidx.media3.common.util.ListenerSet.$r8$lambda$bio3pd12v5B_9b5UeFaPn9XBQ90(Unknown Source:0)
at androidx.media3.common.util.ListenerSet$$ExternalSyntheticLambda0.handleMessage(Unknown Source:2)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:268)
at android.app.ActivityThread.main(ActivityThread.java:8046)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:627)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1115)
Caused by: java.lang.NullPointerException: null receiver
at java.lang.reflect.Method.invoke(Native Method)
at com.android.tools.deploy.liveedit.ProxyClassHandler.invokeMethod(ProxyClassHandler.java:99)
at com.android.tools.deploy.liveedit.ProxyClassHandler.invoke(ProxyClassHandler.java:126)
at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
at $Proxy7.onEvents(Unknown Source)
at androidx.media3.exoplayer.ExoPlayerImpl.lambda$new$0$androidx-media3-exoplayer-ExoPlayerImpl(ExoPlayerImpl.java:281)
at androidx.media3.exoplayer.ExoPlayerImpl$$ExternalSyntheticLambda12.invoke(Unknown Source:4)
at androidx.media3.common.util.ListenerSet$ListenerHolder.iterationFinished(ListenerSet.java:350)
at androidx.media3.common.util.ListenerSet.handleMessage(ListenerSet.java:294)
at androidx.media3.common.util.ListenerSet.$r8$lambda$bio3pd12v5B_9b5UeFaPn9XBQ90(Unknown Source:0)
at androidx.media3.common.util.ListenerSet$$ExternalSyntheticLambda0.handleMessage(Unknown Source:2)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:268)
at android.app.ActivityThread.main(ActivityThread.java:8046)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:627)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1115)
Jakub Syty
09/27/2023, 12:04 PMOluwafemi Ogundipe
09/27/2023, 2:59 PM