9

Androidカメラがキャプチャしたビデオをオンザフライで暗号化したい。だから私はアンドロイドMediaRecorderにビデオストリームを私のCipherOutputStream. 問題は、MediaRecorder.setOutputFile()メソッドが受け入れるだけFileDescriptorであり、CipherOutputStream から暗号化ファイル記述子を取得する方法がないことです。

だから私の質問は、どのように FileDescriptor をエミュレートしてデータ書き込みを受け取り、暗号化を手動で行うか、何らかの方法でMediaRecorderビデオを にストリーミングするよう説得できるかということCipherOutputStreamです。

4

1 に答える 1

5

LocalServerSocket と LocalSocket を使用して、必要なものを実装できます。

LocalServerSocket.getFileDescriptor() を介して FileDescriptor を提供する LocalServerSocket

  1. LocalServerSocket を開始します。
  2. LocalSocket オブジェクトを開始し、LocalServerSocket に接続します。
  3. LocalServerSocket.accept() を呼び出して、LocalSocket からの接続を受け入れます。
  4. 接続が確立されると、LocalServerSocket から FileDescriptor を取得できます。
  5. Camera が LocalServerSocket に書き込むすべてのバイトは、LocalSocket.getInputStream() から取得できます。for ループを使用してバイト ストリームを取得し、CipherOutputStream に書き込むことができます。

すべてのステップを新しいスレッドに入れることを忘れないでください。

これらの API を使用して、カメラをストリーム ソースとしてオンザフライ ストリーム プロセッサを作成しました。

これが役立つことを願っています。

于 2013-06-24T11:01:05.180 に答える