libgdx/gdx-video

IllegalStateException when trying to replay video

lakrsv opened this issue · 7 comments

Hi, so I'm trying to replay a video once it completes, but trying to do this throws an IllegalStateException.

Here's the error:

10-31 13:37:27.575 29607-30226/com.brainwavebank E/BufferQueueProducer: [unnamed-29607-0] connect(P): already connected (cur=3 req=3)
10-31 13:37:27.576 2404-2892/? E/MediaPlayerService: setVideoSurfaceTexture failed: -22
10-31 13:37:27.576 2404-2892/? D/NuPlayerDriver: reset(0xe63de8e0)
10-31 13:37:27.576 2404-30997/? D/NuPlayerDriver: notifyResetComplete(0xe63de8e0)
10-31 13:37:27.578 29607-30226/com.brainwavebank E/BufferQueueProducer: [unnamed-29607-0] connect(P): already connected (cur=3 req=3)
10-31 13:37:27.578 2404-16337/? E/MediaPlayerService: setVideoSurfaceTexture failed: -22
10-31 13:37:27.578 2404-16337/? D/NuPlayerDriver: reset(0xe63de8e0)
10-31 13:37:27.581 29607-30226/com.brainwavebank D/ufoEGL: Surface destroy: ANDROID_NATIVE_WINDOW_MAGIC
10-31 13:37:27.673 29607-30226/com.brainwavebank E/AndroidRuntime: FATAL EXCEPTION: GLThread 2525
                                                                   Process: com.brainwavebank, PID: 29607
                                                                   java.lang.IllegalStateException
                                                                       at android.media.MediaPlayer.prepareAsync(Native Method)
                                                                       at com.badlogic.gdx.video.VideoPlayerAndroid.play(VideoPlayerAndroid.java:175)
                                                                       at com.brainwavebank.restingstate.Screens.GameScreen.render(GameScreen.java:232)
                                                                       at com.badlogic.gdx.Game.render(Game.java:46)
                                                                       at com.brainwavebank.restingstate.Screens.GameRenderer.render(GameRenderer.java:42)
                                                                       at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:459)
                                                                       at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1522)
                                                                       at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1239)

Here is the initial method creating the video:

 private void createVideo()
    {
        try
        {
            videoPlayer = VideoPlayerCreator.createVideoPlayer(videoViewPort);
            videoPlayer.play(Gdx.files.internal("restvideo.mp4"));
        }
        catch(Exception e)
        {
            Gdx.app.log("EXCEPTION", e.toString());
            videoPlayer = null;
        }
    }

Here is the check for looping the video if it is done in the batch.

if(videoPlayer != null)
        {
            videoViewPort.apply();

            if(videoPlayer.isBuffered()) {
                if (!videoPlayer.render()) {
                    try {
                        videoPlayer.play(Gdx.files.internal("restvideo.mp4"));
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    }
                }
            }
        }

Not sure if this is a bug or me doing it wrong, anyone?

I will look into it this weekend.

Regarding this issue;

So it turns out when gdx-video was added to my project that I had a really old version causing all kinds of problems.

I resolved it by downloading the GitHub project and building the jars by myself.

Hi @lakrsv ,

How you did fixed this problem? I am getting same problem. Can you please share me solutions for that?

Thanks,
Amit

Don't forget to replace 0.0.1 with the current version!

Did you remember to do that, seeing as lakrsv said "I had a really old version"? I'm unsure what the current version is as all I see is "invalid artifact version", so if 1.3.1 doesn't work, try 1.3.2-SNAPSHOT.

Nevermind, apparently there are no releases.

Hi,

I want to know what that change you did to fixed this issue. what fixed you did for this in 1.3.2-SNAPSHOT.

I want know what solutions you did for this. can you share me that solutions or hint for this it will be good for me.

I am getting same issue below is the logs that I am getting.

03-17 12:19:27.812 2758 2826 E BufferQueueProducer: [SurfaceView - #0] connect: already connected (cur=2 req=3)
03-17 12:19:27.812 2829 3323 E : 2866:IGraphicBufferProducer.cpp status_t (0)
03-17 12:19:27.812 2829 3323 E Surface : 2866: Suface.cpp connect err (-22)
03-17 12:19:27.812 2829 3323 E Surface : 2866: Suface.cpp connect mConsumerRunningBehind (-22) (3) (2)
03-17 12:19:27.812 2829 3323 E Surface : native cpp: Suface.cpp perform complete (-22)
03-17 12:19:27.812 2829 3323 E SurfaceUtils: Failed to connect to surface 0xe93e5008, err -22
03-17 12:19:27.812 2829 3323 E MediaPlayerService: setVideoSurfaceTexture failed: -22
03-17 12:19:27.813 2829 3323 E Surface : 2866:Surface.cpp ::~Surface() (0)
03-17 12:19:27.814 8657 8657 D AndroidRuntime: Shutting down VM
--------- beginning of crash
03-17 12:19:27.815 8657 8657 E AndroidRuntime: FATAL EXCEPTION: main
03-17 12:19:27.815 8657 8657 E AndroidRuntime: Process: jp.co.ricoh.advop.customize, PID: 8657
03-17 12:19:27.815 8657 8657 E AndroidRuntime: java.lang.IllegalStateException
03-17 12:19:27.815 8657 8657 E AndroidRuntime: at android.media.MediaPlayer._prepare(Native Method)
03-17 12:19:27.815 8657 8657 E AndroidRuntime: at android.media.MediaPlayer.prepare(MediaPlayer.java:1274)
03-17 12:19:27.815 8657 8657 E AndroidRuntime: at jp.co.ricoh.advop.customize.view.VideoSurfaceView$1.onPostExecute(VideoSurfaceView.java:155)
03-17 12:19:27.815 8657 8657 E AndroidRuntime: at jp.co.ricoh.advop.customize.view.VideoSurfaceView$1.onPostExecute(VideoSurfaceView.java:106)
03-17 12:19:27.815 8657 8657 E AndroidRuntime: at android.os.AsyncTask.finish(AsyncTask.java:755)
03-17 12:19:27.815 8657 8657 E AndroidRuntime: at android.os.AsyncTask.access$900(AsyncTask.java:192)
03-17 12:19:27.815 8657 8657 E AndroidRuntime: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:772)
03-17 12:19:27.815 8657 8657 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107)
03-17 12:19:27.815 8657 8657 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
03-17 12:19:27.815 8657 8657 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7356)

Thanks,
Amit

Sorry, I haven't experienced this issue. Is this with your own code, or the test?

Hi,

This is my own code but I am getting same issue. it will be good if you can provide me some hints to fix this.

I think this issue in BufferQueueProducer in native class but still I am not sure exactly where this issue.

I hope you fixed that if you have any idea about this please share me.

Thanks,
Amit