3

PTTDroidのようなプロジェクトを開発しようとしています。つまり、プッシュツートークまたはトランシーバーアプリケーションです。

問題は、このアプリでは 3G を使用して Web にアクセスできないことです。そのため、Node.js サーバーを使用し、それと通信するために Android クライアントを実装することにしました。Phonegap を使用してマルチプラットフォーム プロジェクトを実行しようとしましたが、問題は、オーディオ レコードの場合、バッファにアクセスできず、録音プロセスを開始、停止、または一時停止することしかできませんが、キャプチャ中にデータを送信できないことです。だから私の問題は、Socket.IOなどのNode.jsサーバーを使用して、ネイティブAndroid関数(Audiorecordクラス)によってリアルタイムでオーディオキャプチャをストリーミングできることです?

このプロジェクト、Asimi JSを発見しましたが、他の誰かが私がやりたいことを行うためのより良い方法を知っているかどうかはわかりません。

ご助力ありがとうございます!

4

2 に答える 2

3

私は最終的に私の問題を発見して解決しました(少なくともそれは私が思うことです)...まず、DatagramSocketによってUDPパケットを送受信するサーバーを作成し、その後、サーバーとクライアント間の通信を実現しました。 3G で接続されているため、静的ポートと IP が必要だったため、サーバーがクライアントに接続できませんでした。データ接続では、ユーザーの IP とポートが常に同じであるとは限らず、送受信する場合は常に同じソケットを開いたままにしておく必要があります。一方、サーバーは、接続の瞬間にクライアントからのアドレスとポートを保存する必要があります。

いつもお世話になっておりますExxKA

于 2013-03-27T07:49:36.667 に答える
3

それは確かに可能ですが、tcp を使用するため、標準の NodeJS http サーバーはお勧めできません。オーディオのトランスポート層として UDP を使用します。UDP の方が高速であり、発生する可能性のある小さなパケット損失が問題にならない可能性が高いためです。

正直に言うと、ネイティブ プラットフォームでいくつかのデモ アプリケーションを作成する必要があるように思えます。そのため、phonegap は使用しないでください。マイクなどにアクセスし、UDP 経由でストリーミングするには、ネイティブ プラットフォームが必要です。

デモが動作したら、後で別のプラットフォームで試してみることができますが、一度にすべてを実行しようとするのではなく、簡単なセットアップから始めます。簡単だったら、他の誰かがあなたの前にそれをやったでしょう.

NodeJS、Java、C、C++、C#など、最も使い慣れた言語のシンプルなUDPサーバーをお勧めします。UDP サーバーがコンテンツを受信して​​ファイルに保存し、デスクトップ コンピューターで再生して結果を確認できるようにします。単純なクライアントとして、Android または iOS のいずれかでビルドし、既に記録してアプリに含めたファイルをストリーミングします。このセットアップが機能したら、マイクのキャプチャ、ユーザー インターフェイスの実行、複数の電話のサポート、会話を記録するサーバーの構築、ユーザー データベースの構築などを試すことができます。ただし、メイン機能のプロトタイプから始めてください。

于 2013-03-15T14:23:23.577 に答える