Wie kann ich ein Bild als Textur laden und es durch GLES Rendern, um den MediaCodec Surface Input-Ansatz zu verwenden?Android Bild zu Video
Ich wurde von EncodeAndMuxTest Beispiel gestartet.
Vielen Dank im Voraus.
Wie kann ich ein Bild als Textur laden und es durch GLES Rendern, um den MediaCodec Surface Input-Ansatz zu verwenden?Android Bild zu Video
Ich wurde von EncodeAndMuxTest Beispiel gestartet.
Vielen Dank im Voraus.
Blick auf Probe aus grafika, wird es geben Ihnen einen Einblick darüber, wie Sie es
tun solltenHier Code Bitmap in Textur laden
int mTextureId = -1;
public void loadTexture(Bitmap bitmap)
{
if (mTextureId != -1) {
int[] textureHandle = new int[1];
GLES20.glGenTextures(1, textureHandle, 0);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextureId);
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
GLES20.GL_TEXTURE_MIN_FILTER,
GLES20.GL_NEAREST);
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
GLES20.GL_TEXTURE_MAG_FILTER,
GLES20.GL_LINEAR);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D,
GLES20.GL_TEXTURE_WRAP_S,
GLES20.GL_CLAMP_TO_EDGE);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D,
GLES20.GL_TEXTURE_WRAP_T,
GLES20.GL_CLAMP_TO_EDGE);
} else {
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextureId);
}
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0);
}
und hier ist, wie man es machen kann inputsurface
// Create Fullframe rectangle (a class from grafika),
mInputSurface.makeCurrent();
mFullFrameRect = new FullFrameRect(new Texture2dProgram(Texture2dProgram.ProgramType.TEXTURE_2D));
....
// And when you want to draw it
mInputSurface.makeCurrent(); // if its not already current
loadTexture(bitmap);
GLES20.glViewport(0, 0, viewWidth, viewHeight);
mFullFrameRect.drawFrame(mTextureId, GlUtil.IDENTITY_MATRIX);
mInputSurface.setPresentationTime(pts);
mInputSurface.swapBuffers();
FullFrameRect
, Texture2dProgram
, GlUtil
sind Klassen von Grafika, so sollten Sie cop y es oder ähnliche Funktionalität selbst implementieren
Vielen Dank für Ihre Antwort. Es scheint, ich bin auf einem guten Weg, ich habe Ihre Lösung versucht, aber ich bekomme immer noch ein schwarzes Bildschirmvideo. Was ich nicht verstehe, brauche ich eine GLSurfaceView, um die Bildtextur zu rendern? Danke – Siv
Ok. Ich konnte mein Bild konvertieren. tIch war meine Schuld, falsche Konfiguration für Egl-Kontext. Nochmals vielen Dank für Ihre Hilfe. – Siv
@Siv wäre nützlich zu wissen, was Ihre Lösung war –