Android WebRTC personalizar la vista remota y local

Estoy implementando el webrtc en un proyecto de Android y estoy basado en esta muestra en github .

Este ejemplo utiliza la biblioteca libjingle. Así se crea la vista de reproducción de vídeo:

// Create video renderers. VideoRendererGui.setView((GLSurfaceView)videoView, new Runnable() { @Override public void run() { createPeerConnectionFactory(); } }); remoteRender = VideoRendererGui.create( REMOTE_X, REMOTE_Y, REMOTE_WIDTH, REMOTE_HEIGHT, scalingType, false); localRender = VideoRendererGui.create( LOCAL_X_CONNECTING, LOCAL_Y_CONNECTING, LOCAL_WIDTH_CONNECTING, LOCAL_HEIGHT_CONNECTING, scalingType, true); 

Mi pregunta es cómo puedo manejar personalizar el remoteRender y localRender , de modo que pueda cambiarlo position en el GLSurfaceView y su anchura y altura

EDITAR:

He hecho un oyente y he intentado esto:

  @Override public void onWidthHeightChange(int width, int height) { VideoRendererGui.update(remoteRender, REMOTE_X-width, REMOTE_X-height, REMOTE_WIDTH-width, REMOTE_HEIGHT-height, scalingType, false); if (iceConnected) { VideoRendererGui.update(localRender, LOCAL_X_CONNECTED, LOCAL_Y_CONNECTED, LOCAL_WIDTH_CONNECTED, LOCAL_HEIGHT_CONNECTED, ScalingType.SCALE_ASPECT_FIT, true); } else { VideoRendererGui.update(localRender, LOCAL_X_CONNECTING, LOCAL_Y_CONNECTING, LOCAL_WIDTH_CONNECTING, LOCAL_HEIGHT_CONNECTING, scalingType, true); } } 

Cuando doy valor 150 para el ancho y la altura me da este error:

 08-21 14:34:01.621 7636-7636/org.appspot.apprtc E/AppRTCDemoActivity﹕ Fatal error: glUseProgram: GLES20 error: 1281 java.lang.RuntimeException: glUseProgram: GLES20 error: 1281 at org.webrtc.GlUtil.checkNoGLES2Error(GlUtil.java:48) at org.webrtc.GlShader.useProgram(GlShader.java:123) at org.webrtc.GlRectDrawer.drawOes(GlRectDrawer.java:132) at org.webrtc.VideoRendererGui$YuvImageRenderer.draw(VideoRendererGui.java:371) at org.webrtc.VideoRendererGui$YuvImageRenderer.access$800(VideoRendererGui.java:131) at org.webrtc.VideoRendererGui.onDrawFrame(VideoRendererGui.java:722) at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1522) at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1239) 

EDIT 2 con la solución:

Cuando estaba mirando a la respuesta mattm entendí que él tenía razón.

Mientras que estaba buscando para mi excepción encontré que era una excepción lanzada de la biblioteca de libjingle . He encontrado este pedazo de código aquí VideoRendererGui.java en línea 368, 347 Encontré la solución para mis preguntas.

Al agregar la altura y el ancho de la vista tiene que estar dentro de estos rangos basados ​​en este código:

  /** * Creates VideoRenderer.Callbacks with top left corner at (x, y) and * resolution (width, height). All parameters are in percentage of * screen resolution. */ public static YuvImageRenderer create( int x, int y, int width, int height) { // Check display region parameters. if (x < 0 || x > 100 || y < 0 || y > 100 || width < 0 || width > 100 || height < 0 || height > 100 || x + width > 100 || y + height > 100) { throw new RuntimeException("Incorrect window parameters."); } 

Así que mientras siga estas reglas llamando al método VideoRendererGui.update(... funcionará perfectamente

Gracias

Es tan simple como cambiar los campos

  • las coordenadas:
    REMOTE_X , REMOTE_Y o LOCAL_X_CONNECTING , LOCAL_Y_CONNECTING ,
  • O las dimensiones: REMOTE_WIDTH , REMOTE_HEIGHT o LOCAL_WIDTH_CONNECTING , LOCAL_HEIGHT_CONNECTING

Si desea cambiar la representación una vez que los objetos han sido creados, llame a VideoRendererGui.update(remoteRender, ...) .

  • Servidor AppRTC devuelve html en lugar de Json
  • WebRTC Native API para Android
  • La conexión WebRTC falla en los datos celulares
  • La aplicación se bloquea al cargar la biblioteca nativa para webRTC
  • Alternativa a getUserMedia () para la lectura de flujo de cámara en vivo en iOS?
  • No se puede instalar el comando gclient en ubuntu 14.04
  • Uso de Webrtc en la aplicación nativa
  • 06-16 12: 05: 46.802: E / chromium (15693): No se puede seleccionar el dispositivo de audio
  • El audio multipartito en WebRTC en iOS / Android se distorsiona
  • Implementación de App-to-App llamando a Android
  • WebRTC en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.