Я использую QuickBlox Android SDK, версия 3.0. Моему приложению нужно распознать лицо или добавить некоторые фильтры в видеодорожку. Я нашел несколько ответов, используя OnQBVideoChatListener.Как добавить фильтры к видеоролику QuickBlox?
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) Как записать данные кадровой камеры обратно в видеодорожку?
Любая помощь будет подтверждена!
Edit 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