Шифрование видео на лету с камеры android
Я хочу зашифровать видео на лету, которое захватывает камера android. Для Андроид MediaRecorder
писать видео поток в мой CipherOutputStream
. Проблема MediaRecorder.setOutputFile()
метод принимает только FileDescriptor
и нет способа получить шифрующий файловый дескриптор из CipherOutputStream.
Итак, мой вопрос в том, как я могу эмулировать FileDescriptor для получения записи данных и шифрования вручную или как-то убедить MediaRecorder
для потокового видео в CipherOutputStream
.
1 ответов
вы можете использовать LocalServerSocket и LocalSocket для реализации того, что вы хотите.
LocalServerSocket, который предоставляет FileDescriptor через LocalServerSocket.getFileDescriptor ()
- инициировать LocalServerSocket.
- инициировать объект LocalSocket и подключиться к LocalServerSocket.
- Вызвать LocalServerSocket.accept (), чтобы принять соединение от LocalSocket.
- когда соединение установлено, вы можете получить файл из LocalServerSocket.
- каждый байт камера пишет LocalServerSocket может быть получен из LocalSocket.getInputStream (), вы можете использовать for-loop для получения потока байтов и записи в CipherOutputStream.
Не забудьте поместить все шаги в Новый Поток.
Я использовал эти API для создания процессора потока "на лету" с камерой в качестве источника потока.
надеюсь, это поможет.