• 締切済み

音声入出力プログラムの作成方法を教えて下さい。

音声チャットをするプログラムを作りたいと考えました。 言語は、Java, C++/C, C#, VB.NETであればなんでもいいです。 できれば、GUI部分が作りやすいC#, VB.NETであるといいですが。 特には限定しません。 私個人の状況の説明ですが、通信系のプログラムは、なんどか組んだことがあります。 ただし、通信の基になる情報の入出力源としては、 a)キーボード入力 b)DBの入出力 c)画面の入力内容を入力源とする。 d)通信結果で、画面を更新する。 e)コンソール入出力 f)ログ出力 主にテキストベースのやりとり。 通信時の構成としては、 AとBが通信するケースでは、 1)A→B方向での通信をするソケットを処理するスレッド 2)B→A方向での通信をするソケットを処理するスレッド B側にも同様に2つのスレッドがある状態。 セッションの確立要求を出すほうがクライアント側のソケットであるだけです。 受信部のロジックとしては、 a)改行コードがくるまでブロック。 受け取った情報を元に、アプリケーションプロトコルの処理し、再度ループを回る。 b)1バイト受信ごとに、処理をするループを回る。 (画面上の即時更新など) の2つ。 でも、音声だと、「マイク入力」、「スピーカーを鳴らす」、 そういう部分を解決しなければできないと思います。 DirectSoundや、SIPなどがあるようですが、正直難しくて手が出せてません。 スレッドやソケットは別にしても、テキストベースなら、コンソール入出力のように とても簡単なんです。 それに近いイメージでのノウハウで、アドバイスやサンプル等があるととても助かります。 言語は「Java, C++/C, VB.NET」であればよいです。動作環境は、OSはWindows一般でうごけばいいです。

みんなの回答

回答No.2

DirectPlayVoiceが手軽でいいと思いますよ。 C#やVBからでも使えますし。 実際、これを使ってメッセンジャーのようなソフトを作って 販売している会社もあります。 音声CODECを自分で作るのは骨が折れます。 遅延や欠損などにも耐えなければいけませんしね。 SIPはP2Pで通信するために 能力交換と位置情報を解決するための呼制御のプロトコルで これそのものは音声を伝送する術を持ちませんし RFC3261を読むだけで鬱になるので個人での実装はおすすめしません。

すると、全ての回答が全文表示されます。
  • clsdi99
  • ベストアンサー率63% (31/49)
回答No.1

DirectXを使うといいですよ って回答しようとしたら難しいですか・・・ 探せば音声チャットを実装できるライブラリとかコンポーネントあるんじゃないでしょうかね。。 そーいったライブラリ(DirectX含む)を使わないとおそらく逆に難しいでしょう。WindowsAPIを駆使すれば実装できますが、通信部分に乗っけるデータのストリーム化などを考えると・・・ やっぱり一番簡単なのがDirectXを使用するじゃないでしょうか。

すると、全ての回答が全文表示されます。

関連するQ&A