通过Android应用在Chromebook上录制屏幕的一部分时出现乱码

问题描述

我开发了一个打算在Chromebook上运行的录音Android应用。由于android上没有支持此目的的本机API,因此我改用grafika。一切正常,除非在某些较弱的Chromebook上,录制的视频显示如下图所示的乱码。

它与WindowSurface,SurfaceTexture类有关,但我不确定。有人可以帮忙吗?

enter image description here

private void handleFrameAvailable(long timestampNanos) {
        if (shouldStart && mVideoEncoder != null) {
            mVideoEncoder.drainEncoder(false);

            GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

            if (mTransform == null) {
                mTransform = new float[16];
            }

            mSurfaceTexture.getTransformMatrix(mTransform);

            mFullScreen.drawFrame(mTextureId,mTransform);
            if (mEnableWatermark) {
                watermarkFrameRect.drawFrame(mTextureId,mTransform);
            }

            mInputwindowSurface.setPresentationTime(timestampNanos);
            mInputwindowSurface.swapBuffers();
        }

        mInputwindowSurface.makeCurrent();
        mSurfaceTexture.updateTexImage();
    }

如果下面的两行代码在Handler中运行,则可以避免很多问题,但是最终视频的FPS缓慢

mInputwindowSurface.makeCurrent();
mSurfaceTexture.updateTexImage();

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)