0
我正在使用QuickBlox Android SDK 3.0版。我的应用需要做脸部检测或附加一些过滤器到视频轨道。我找到了一些使用OnQBVideoChatListener的答案。如何将过滤器添加到QuickBlox的videoTrack中?
private OnQBVideoChatListener qbVideoChatListener = new OnQBVideoChatListener() {
@Override
public void onCameraDataReceive(byte[] videoData) {
}
@Override
public void onMicrophoneDataReceive(byte[] audioData) {
}
@Override
public void onOpponentVideoDataReceive(byte[] videoData) {
}
@Override
public void onOpponentAudioDataReceive(byte[] audioData) {
}
};
但是我找不到它在任何一个QuickBlox Android SDK 3.0中。
我的问题是:
1)是否有可能得到视频轨道YUV字节数据或OpenGL纹理的Android SDK 3.0吗?
2)如何将相机画面数据写回视频轨?
任何帮助将appriciated!
编辑1:
vfite是正确的。 SurfaceViewRenderer.renderFrame(I420Frame框架)是这个问题的关键。所以我从QBRTCSurfaceView扩展了一个类。
public class CustomRTCSurfaceView extends QBRTCSurfaceView {
private static final String TAG = "CustomRTCSurfaceView";
public CustomRTCSurfaceView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomRTCSurfaceView(Context context) {
super(context);
}
@Override
public void renderFrame(VideoRenderer.I420Frame frame) {
//append filters or do modification as you wish
VideoRenderer.I420Frame newFrame = getNewFrame();
super.renderFrame(newFrame);
}
}
但是这只会改变当前端的帧效果,如何将这种效果应用到点对点连接的另一端?有没有我可以使用的自定义参数机制?
感谢您的回复!我编辑了我的问题,你能发表评论吗? – yangyu