android - 为什么我的 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) ...
}
}
知道为什么我的纹理被涂成粉红色吗?
解决方案
推荐阅读
- css - 在 scss 中访问 mixin 嵌套元素
- laravel - Laravel SMTP 530 5.7.0 必须先发出 STARTTLS 命令
- javascript - 如何让我的 Discord Bot 对类似消息回复相同的答案?JavaScript
- firebase - 如何将firebase实时数据库更改为云firestore数据库?
- bash - 使用 grep 为 I/O 优先级设置指定进程 ID 时出现问题
- julia - 使用子包从文件夹结构创建包
- excel - 循环复制和粘贴
- sql - 将文本从 json 转换为 Date
- bash - 在 crontab 中找到 printf 的正确格式是什么?
- ffmpeg - FFmpeg 在 MPTS 文件上计算 PSNR