Android Question how can we use exoplayer in CustomListView or RecyclerView

Mehrzad238

Active Member
I am trying to use Exo player in RecyclerView by loading SimpleExoPlayerView1 in the panel, but I am getting all sorts of errors when I ask.ChatGPT says this issue is for the lastest version, and previous versions did not have such a thing. ChatGPT is not always right and makes mistakes, and the problem is something else

I did find something like that on this link
[B4X] [B4XPages] Pleroma / Mastodon Client
but I could not understand what exaly happen any help would be appreciated


Here is the error:

B4X:
Panel size is unknown. Layout may not be loaded correctly.
java.lang.AbstractMethodError: abstract method "void androidx.media3.common.Player$Listener.onSurfaceSizeChanged(int, int)"
    at androidx.media3.exoplayer.ExoPlayerImpl.lambda$maybeNotifySurfaceSizeChanged$27(ExoPlayerImpl.java:2729)
    at androidx.media3.exoplayer.ExoPlayerImpl$$ExternalSyntheticLambda20.invoke(D8$$SyntheticClass:0)
    at androidx.media3.common.util.ListenerSet$ListenerHolder.invoke(ListenerSet.java:339)
    at androidx.media3.common.util.ListenerSet.lambda$queueEvent$0(ListenerSet.java:223)
    at androidx.media3.common.util.ListenerSet$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
    at androidx.media3.common.util.ListenerSet.flushEvents(ListenerSet.java:245)
    at androidx.media3.common.util.ListenerSet.sendEvent(ListenerSet.java:260)
    at androidx.media3.exoplayer.ExoPlayerImpl.maybeNotifySurfaceSizeChanged(ExoPlayerImpl.java:2728)
    at androidx.media3.exoplayer.ExoPlayerImpl.setVideoSurfaceHolder(ExoPlayerImpl.java:1365)
    at androidx.media3.exoplayer.ExoPlayerImpl.setVideoSurfaceView(ExoPlayerImpl.java:1396)
    at androidx.media3.ui.PlayerView.setPlayer(PlayerView.java:595)
    at anywheresoftware.b4a.objects.SimpleExoPlayerViewWrapper.setPlayer(SimpleExoPlayerViewWrapper.java:94)
    at mixadapter.b4xwithmehrzad.ir.reels._recyclerreels_oncreateviewholder(reels.java:442)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
    at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:351)
    at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:157)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:205)
    at anywheresoftware.b4a.BA.raiseEvent(BA.java:201)
    at com.aghajari.rv.Amir_RVAdapter$Amir_RVAdapterWrapper.onCreateViewHolder(Amir_RVAdapter.java:202)
    at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7788)
    at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6873)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6757)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6753)
    at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2362)
    at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1662)
    at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622)

before this I had this error:

B4X:
java.lang.AbstractMethodError: abstract method "void androidx.media3.common.Player$Listener.onSurfaceSizeChanged(int, int)"
 
Last edited:
Top