私は低データレートのVoIPのようなプロジェクトを開発しています。低データレートでオーディオをキャプチャし、それを内部バッファまたはFIFO(ファイルではなく)に保存する必要があります。
低データレートの.AMRエンコーダーを使用したいのですが、これはAudioRecordが出力されていることを意味します。MediaRecorderは、ファイルに書き込んでいるように見えることを除けば、私が望んでいることを正確に実行しているように見えます。
MediaRecorderはFileDescriptorを受け取ります...FileDescriptorインターフェイスを実装するクラスを作成する方法はありますか...バイトの同期として機能します...しかし、ファイルに送信する代わりに、それらはバッファーに格納されますか?FileDescriptorのドキュメントには、アプリケーションが独自に作成するべきではないと具体的に記載されていますが、なぜ作成しないのでしょうか。
http://docs.oracle.com/javase/1.4.2/docs/api/java/io/FileDescriptor.html
つまり、独自のストリームを開発し、MediaRecorderをだましてデータを送信したいと思います。おそらく、同じAPK内でソケットの両端を開き、MediaRecorderに書き込み用のソケットを与えるというトリッキーなことをしていますか?ソケットをFIFOとして使用しますか?私はこれに少し慣れていないので、どんな助け/提案も大いに感謝します。
RX側に関連する質問があります。MediaPlayerにフィードするバッファ/FIFOが欲しいのですが。MediaPlayerをだまして、独自のストリームによって供給されるバッファーからデータを受け入れることはできますか?