从Android摄像头即时加密视频

时间:2012-07-24 20:02:31

标签: java android encryption android-camera file-descriptor

我想动态加密Android摄像头拍摄的视频。所以我需要告诉android MediaRecorder将视频流写入我的CipherOutputStream。问题是MediaRecorder.setOutputFile()方法只接受FileDescriptor,并且无法从CipherOutputStream获取加密文件描述符。

所以我的问题是如何模拟FileDescriptor接收数据写入并手动进行加密或以某种方式说服MediaRecorder将视频流式传输到CipherOutputStream

1 个答案:

答案 0 :(得分:4)

您可以使用LocalServerSocket和LocalSocket来实现您想要的功能。

LocalServerSocket,它通过LocalServerSocket.getFileDescriptor()提供FileDescriptor

  1. 启动LocalServerSocket。
  2. 启动LocalSocket对象并连接到LocalServerSocket。
  3. 调用LocalServerSocket.accept()以接受来自LocalSocket的连接。
  4. 建立连接后,您可以从LocalServerSocket获取FileDescriptor。
  5. 可以从LocalSocket.getInputStream()中检索Camera写入LocalServerSocket的每个字节,您可以使用for循环获取字节流并写入CipherOutputStream。
  6. 请记住将所有步骤放入新线程中。

    我使用这些API来创建动态流处理器,并将Camera作为流源。

    我希望这会有所帮助。

相关问题