5

私は現在、一種のVoIPクライアントであるプログラムを書いています。2つのクライアント間の接続を確立し、マイクから録音されたデータを送受信しようとしています。

私は現在ファイルを使用していますが、それはひどい実装のように見えます:

レコーダは一時ファイルへの記録を開始します。タイマーが作動し、レコーダーを停止し、ファイルサイズを確認してから、DatagramPacketを使用してコンテンツを送信します。

ひどく悪いようです。MediaRecorderクラスとMediaPlayerクラスには、それぞれファイルの出力と入力(つまり、DatagramSocket)としてUPDソケットを使用する方法があるのでしょうか。

ソケットからファイル記述子を使用できますが、ソケットはTCPを使用します。UDPを使用したかったので、DatagramSocketを推測しますが、MediaRecorderおよびMediaPlayerクラスでUDPを使用する方法が見つからないようです。

誰かがこれに対する良い解決策を持っていますか?

どうもありがとうございます

4

2 に答える 2

3

おそらくParcelFileDescriptorに興味があり、具体的にはfromDatagramSocket(...)関数に興味がある場合は、getFileDescriptor関数を使用してプレーヤーのデータソースを設定できます。

*更新:これは、Android 4.0以降を使用している場合にのみオフコースで機能します:APIの制限を参照してください

于 2012-01-26T15:16:34.787 に答える
-1

全て、

これを行う1つの方法は、抽象スペース(UNIXという名前のsocket)にLocalServerSocketをセットアップする2番目のスレッドを実装することです。次に、最初のスレッドで、LocalServerSocketに接続するLocalSocketを作成します。この手順の後、最初のスレッドでLocalSocketのFileDescriptorを取得し、これをMediaRecorderのOutputFileとして設定できます。2番目のスレッドでは、剥がしたLocalSocketから読み取り、DatagramSocketに書き込みます。EzPz。

頑張って、B-Rad

于 2010-12-22T22:16:11.700 に答える