Skype APIを使って録音した音声を流してみる

 

Skype APIとは

Skypeはご存知「P2Pネットワークを使ったSkype同士の通話無料」なサービスを提供しているソフトウェアのことです。 通話の音声は他の似たソフトウェアより断然高音質で、無料なので手軽に通話することができる便利なツールです。

そんなSkypeの動作を別のプログラムで操作できる「Skype API」というものを提供しています。これを使えばSkypeソフトウェアを使用する ソフトウェアを作ることができます。

Skype APIの利用の仕方については下記ページをご確認下さい。

Skype API利用規約

 

この本はもう買わないでくださいね・・。

岩田 真一/rゆ/xai/池嶋 俊/大谷 弘喜/須崎 雅道/寺田 亮/谷萩 毅之/山本 達也¥ 2,940

こちらの本はActiveSというSkype本家からでてきたものを利用しているわけでなく、内容も古ので私みたいに購入するのはやめておきましょう。 現在(2009年12月6日)のところSkype APIを紹介している和書はなさそうです。でもまあネットの情報や英語と多少にらめっこすれば解決するレベルです。

 

使用するもの

  1. Skype
  2. Skype4COM
  3. Visual C# 2005

Windowsメッセージのやりとりを書くのは非常に大変そうなのでCOMに任せます。COMは大雑把に言うと面倒な処理をプログラムが補ってくれて プログラムは本質的な部分のコードを書くだけで済むというお助けツールです。

 

Skype4COMの追加

Skype4COMのインストールが終わったらVisual Studioを起動しましょう。「プロジェクト→参照の追加→COM→Skype4COM」を選択します。

OKを押すとコントロールボックスに「Skype class」が追加されます。

 

Skypeをコントロールしてみる

まずはフォームにSkype classを貼り付けてみましょう。

次にフォームをダブルクリックしてフォームがロードされたときに実行するイベントを以下に追加します。

axSkype1は先ほどフォームに貼り付けたSkype Classです。AttachはSkypeをコントロールできるようにSkypeに申請するコマンドです。 この状態で実行するとSkypeが以下のようなウィンドウをだします。

ここで許可を押した時点でSkypeAPIが使えるようになります。

次にボタンを押したら音声が再生されるようにしましょう。フォームにbutton1を追加した後、コードを以下のように書きます。

これで通話中にこのプログラムを起動してボタンを押せば「C:\xxx.wav」が再生されます。ただし、ボタンを押しても自分の開発環境から 音声データが再生されるわけではないので確認にはecho123(Skype提供の音声確認BOT)に通話するか、もう一台Skypeが入っているパソコンを用意して 確認する必要があります。また、再生する音声ファイルは制限がかなり厳しいようで、私の場合

  1. ビットレート:256kbps
  2. オーディオサンプルサイズ:16ビット
  3. チャンネル:1(モノラル)
  4. オーディオサンプルレート:16KHz
  5. オーディオ形式:PCM

で再生することができました。ここらへんはWindows標準で入っているサウンドレコーダーで変更することができます。

また、SKYPE4COMLib.Callクラスのset_InputDeviceは入力デバイスを切り替えるので音声ファイルを再生した後 マイクの音声が入らなくなります。そこで下記のようにコードを修正します。

SoundPlayerを使って自分のパソコンでも同じ音声が流れるようにしました。PlaySync関数を使うことで 音声ファイルの再生が終わるまで次のコードが実行されません。これで音声ファイルの音声の再生が終わった時点で 入力デバイスを元に戻すことができます。

 

いろいろ遊べそう

Skype API、Skype4COMを使えば手軽にSkypeを使ったソフトウェアを作ることができそうです。 また、P2Pネットワークを手軽に使えるコマンドもあるのでネットワーク関係のプログラムを手軽に作りたい場合にも 有効でしょうね。

 

このカテゴリのその他の記事