首页 > 解决方案 > 为什么我的 OpenGL 纹理涂成粉红色?

问题描述

webrtc在我的 android 上设置(点对点视频聊天)。当我绘制来自本地相机的纹理时,一切都很好,但是当我尝试绘制来自远程智能手机的纹理时,我有一个粉红色的图像,如下所示:

在此处输入图像描述

我只是这样做以webrtc获得远程流:

  mRemoteVideoTrack = getRemoteVideoTrack();
  mRemoteVideoTrack.setEnabled(true);
  mRemoteVideoTrack.addSink(mRemoteProxyVideoSink);

  private VideoTrack getRemoteVideoTrack() {
    for (RtpTransceiver transceiver : mPeerConnection.getTransceivers()) {
      MediaStreamTrack track = transceiver.getReceiver().track();
      if (track instanceof VideoTrack) {
        return (VideoTrack) track;
      }
    }
    return null;
  }    

我得到了纹理IDmRemoteProxyVideoSink

  private class RemoteProxyVideoSink implements VideoSink {

    @Override
    synchronized public void onFrame(VideoFrame frame) {
       VideoFrame.TextureBuffer textureBuffer = (VideoFrame.TextureBuffer) frame.getBuffer();
       mTextureID = textureBuffer.getTextureId();
       .. draw mTextureID (in UI thread because onFrame is not fired in UI thread) ...
    }

  }

知道为什么我的纹理被涂成粉红色吗?

标签: androidopengl-eswebrtctextures

解决方案


推荐阅读