我制作了CCTV和录制CCTV屏幕 基于https://github.com/unkei/MyWebRTC。
我的来源包括一个流光和一个观众。
例如,A
是CCTV流媒体。
B
是CCTV Viewer。
如果我从B
连接到A
显示A
相机预览
此来源仅显示相机预览。 相机预览是GLSurfaceView。
我想在GLSurfaceView上显示文字。
首先我尝试更改XML
<FrameLayout android:layout_width="match_parent"
android:layout_height="match_parent">
<android.opengl.GLSurfaceView
android:id="@+id/glview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<TextView
android:id="@+id/tvCamRecTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</FrameLayout>
这个xml是流媒体本身显示文本,但不显示查看器。
然后我尝试使用Bitmap
Canvas
Paint
public void GLText(GL10 gl) {
Bitmap bitmap = Bitmap.createBitmap(256, 256, Bitmap.Config.ARGB_4444);
Canvas canvas = new Canvas(bitmap);
bitmap.eraseColor(0);
Paint paint = new Paint();
paint.setTextSize(18);
paint.setAntiAlias(true);
paint.setARGB(0xff, 255, 0, 255);
paint.setTextAlign(Paint.Align.LEFT);
paint.setTextScaleX(0.5f);
canvas.drawColor(Color.BLUE);
canvas.drawText("testGLText", 16, 112, paint);
int[] mTextures = new int[1];
gl.glGenTextures(1, mTextures, 0);
gl.glBindTexture(GL10.GL_TEXTURE_2D, mTextures[0]);
gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST );
gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR );
gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_REPEAT );
gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_REPEAT );
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
bitmap.recycle();
}
和此来源enter image description here
此源流媒体和查看器显示文本。 但背景颜色为绿色。
所以,我认为如果补充Bitmap
和Canvas
,通常会显示文字流媒体和观看者。
如何在Android上的GLSurfaceview上显示文字? 感谢。