Get the App
SLTechnology News&Howtos  ›  Development  › 

How to realize glsurfaceview playback video code

Shulou Source: shulou.com Published: 2022-06-03 11:01:41 11月15日 Update

This article will give you a detailed explanation on how to achieve glsurfaceview video code. The editor thinks it is very practical, so I share it with you for reference. I hope you can get something after reading this article.

The whole process is to create a GLSurfaceView to load the video, set the renderer in GLSurfaceView, and customize the renderer. The main drawing process is this, in which there are three main methods: onSurfaceCreated (), onSurfaceChanged (), and onDrawFrame ().

Glsurfaceview playback video code

The following code is the code for initializing the shader. As for the code in the shader, you need to know the shader language.

StringvertexShader=ShaderUtils.readRawTextFile (context,R.raw.vetext_sharder)

StringfragmentShader=ShaderUtils.readRawTextFile (context,R.raw.fragment_sharder)

ProgramId=ShaderUtils.createProgram (vertexShader,fragmentShader)

APositionLocation=GLES20.glGetAttribLocation (programId, "aPosition")

UMatrixLocation=GLES20.glGetUniformLocation (programId, "uMatrix")

USTMMatrixHandle=GLES20.glGetUniformLocation (programId, "uSTMatrix")

UTextureSamplerLocation=GLES20.glGetUniformLocation (programId, "sTexture")

ATextureCoordLocation=GLES20.glGetAttribLocation (programId, "aTexCoord")

This string of code binds the texture and sets mediaplayer to associate each frame as a texture.

Glsurfaceview playback video format

TextureId=textures [0]

GLES20.glBindTexture (GLES11Ext.GL_TEXTURE_EXTERNAL_OES,textureId)

ShaderUtils.checkGlError ("glBindTexturemTextureID")

/ * what is the use of GLES11Ext.GL_TEXTURE_EXTERNAL_OES?

It was mentioned earlier that the output format of video decoding is YUV (YUV420p, should be), so the function of this extended texture is to realize the automatic conversion from YUV format to RGB.

This is the end of this article on "how to achieve glsurfaceview video code". I hope the above content can be of some help to you, so that you can learn more knowledge. if you think the article is good, please share it out for more people to see.

Tags: Code video format article texture that is more flow good practical three function content article method usefulness knowledge language setting relevance Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Apple Linux Shulou Information NVidia Xiaomi