2017-08-25 4 views
0

Je travaille sur GLSufaceView avec un flux local et distant.J'ai défini le flux distant et local en utilisant VideoRenderer comme indiqué ci-dessous. enter image description hereonCliquez sur GlSufaceView

La petite vue est la diffusion à distance. Je veux échanger de la vidéo locale et à distance sur un clic de la vue à distance et le problème est que je ne peux pas appliquer cliquez sur cette vue.J'utilise ce code pour ajouter la télécommande et la vidéo courant.

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); 

quand je reçois mon cours d'eau local ci-dessous la méthode de mention est appelée:

 @Override 
public void onLocalStream(MediaStream stream) { 
    stream.videoTracks.get(0).addRenderer(new VideoRenderer(localRender)); 
    VideoRendererGui.update(localRender, LOCAL_X_CONNECTING, LOCAL_Y_CONNECTING, LOCAL_WIDTH_CONNECTING, LOCAL_HEIGHT_CONNECTING, scalingType, true); 
} 

et quand je reçois flux à distance ci-dessous la méthode de mention est appelée:

 @Override 
public void onAddRemoteStream(final MediaStream remoteStream, final int endPoint, final PeerConnection pc) { 

    remoteRender = VideoRendererGui.create(REMOTE_X_CONNECTED - 20 * (cursor - 1), y, REMOTE_WIDTH_CONNECTED, REMOTE_HEIGHT_CONNECTED, scalingType, false); 
      remoteStream.videoTracks.get(0).addRenderer(new VideoRenderer(remoteRender)); 
      VideoRendererGui.update(remoteRender, REMOTE_X_CONNECTED - 20 * (cursor - 1), y, REMOTE_WIDTH_CONNECTED, REMOTE_HEIGHT_CONNECTED, scalingType, true); 

     } 
    }); 
} 

Je veux appliquer clic sur les flux distants uniquement. Les deux vues font partie d'une GLSurfaceview.

S'il vous plaît aidez-moi à ce sujet.

+0

Ce que vous avez essayé de résoudre ce problème et où avez-vous coincé? –

+0

Actuellement, j'utilise GLSurfaceView et pour ajouter une vue locale et distante, j'ai utilisé cette méthode VideoRendererGui.create() pour créer une vue et son fonctionnement est correct mais je suis bloqué sur le problème à appliquer cliquez sur cette vue.Lorsque j'essaie d'appliquer cliquez dessus alors son fonctionnement pour GLSufaceView entier et je veux juste appliquer cliquez sur remoteview seulement. – Payal

+0

Quel code? Je ne vois pas de code dans votre question, mais une très belle image à la place. –

Répondre

1

Il peut être plus facile d'utiliser 2 vues de surface, empilées les unes sur les autres à l'aide d'un FrameLayout. Vous pouvez ensuite attacher un onClickListener à celui que vous voulez écouter les clics

remoteVideoView = (GLSurfaceView) findViewById(R.id.remote_view); 
localVideoView = (GLSurfaceView) findViewById(R.id.local_view); 

remoteVideoView.setOnCLickListener(view -> switchStreams());