Хорошо, я просмотрел пример Фаддена реализации Android MediaMux. Я не уверен, как передать мою сцену на вход поверхности для мультиплексированного кодека MP4. Я работаю над аудиопроцессором, который потребляет аудио и видео ввод/вывод, поэтому MediaRecord не работает, но MediaMux звучит как жизнеспособное решение.
Из кодека создайте inputSurface:
videoInputSurface = codec.createInputSurface();
У меня уже есть реализованный openGLSurfaceView. Я могу получить поверхность из представления, просто позвонив:
myGLSurface = myGLView.getHolder().getSurface();
но это не устанавливает поверхность. Просто схватывает. Есть ли простой способ заставить myGLSurface писать в videoInputSurface.
Чтобы еще больше усложнить ситуацию, у меня есть cameraPreview, добавляемый в ту же группу просмотра, vg, myGLView записывается в:
vg.addView(mCameraPreview);
И myGLView настроен на прозрачность, чтобы сцена openGL накладывалась поверх cameraPreview.
myGLView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
Есть ли простой способ добраться до поверхностного элемента vg? Проще говоря, что пишется в кадр vg на videoInputSurface для кодека?
Спасибо,