Android Camera2 API - Как я могу добавить логотип компании к записанному видеофайлу
Привет всем. Я пытаюсь добавить небольшой логотип в углу к видео, которое я записал. Я пытался добавить imageView непосредственно на поверхность записи, но это не решение.
Я думаю, мне придется создать другую поверхность и объединить их вместе, но я не смог найти учебник или пример кода для такой вещи.
Я нашел возможность добавить передний план для рисования, но он не показывает логотип на поверхности предварительного просмотра. Это код:
private void startRecording(){
try {
setupMediaRecorder();
mTextureView.setForeground(getDrawable(R.drawable.toolbarlogo));
SurfaceTexture surfaceTexture = mTextureView.getSurfaceTexture();
surfaceTexture.setDefaultBufferSize(mPreviewSize.getWidth(),mPreviewSize.getHeight());
Surface previewSurfice = new Surface(surfaceTexture);
Surface recordSurface = mMediaRecorder.getSurface();
mPreviewCaptureRequestBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
mPreviewCaptureRequestBuilder.addTarget(previewSurfice);
mPreviewCaptureRequestBuilder.addTarget(recordSurface);
mCameraDevice.createCaptureSession(Arrays.asList(previewSurfice, recordSurface), new CameraCaptureSession.StateCallback() {
@Override
public void onConfigured(@NonNull CameraCaptureSession session) {
try {
session.setRepeatingRequest(
mPreviewCaptureRequestBuilder.build(),null,null
);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
@Override
public void onConfigureFailed(@NonNull CameraCaptureSession session) {
}
},null);
} catch (Exception e) {
e.printStackTrace();
}
}
пожалуйста помоги. Спасибо
1 ответ
При добавлении отдельной поверхности будет отображаться логотип, пока вы просматриваете его в своем приложении - если вы хотите, чтобы логотип был добавлен в файл, чтобы его можно было просмотреть, если вы поделитесь или загрузите видео, вам необходимо добавить его в само видео.
Предполагая, что вы записываете видео на локальное устройство, тогда один из способов сделать это - использовать ffmpeg для добавления изображения в видео - см. Этот ответ, который содержит примечания о том, как расположить изображение:
Есть несколько способов включить ffmpoeg в проект Android, но, возможно, самый простой - использовать хорошо поддерживаемый проект-обертку ffmpeg, такой как этот:
Обертки в основном обертывают интерфейс вокруг инструмента командной строки ffmpeg, который имеет то преимущество, что вы можете использовать тот же синтаксис - например, синтаксис в ответе, отмеченном выше, и использовать поддержку и вопросы и ответы в сети вокруг него.
Недостатком является то, что инструмент командной строки изначально не был предназначен для использования таким образом, но если вы используете хорошо поддерживаемую оболочку, вы, вероятно, обнаружите, что многие проблемы были устранены.
Стоит отметить, что для обработки видео требуется достаточно высокая загрузка ЦП и, следовательно, требования к аккумулятору мобильного устройства. Если вы собираетесь загружать видео на сервер, чтобы поделиться им, возможно, имеет смысл добавить изображение сюда, где у вас больше ресурсов процессора.