C#でSkypeAPIを使ってみた その2
chakemiです。季節はもうすっかり秋ですが、家ではエアコンをガンガンに使ってます。
今日は、前回に引き続き、SkypeAPIをもう少し触ってみようと思います。
開発環境
- Windows7
- Visual C# 2010 Express
前回のテストでは、ホント繋がるか確認するためだけで Skypeが起動していることが、必須条件だったり Callしたらしっぱなしだったんで、今日はアプリケーションを実行した際、 Skypeが起動しているか確認し、起動していなかったら Skypeを起動するような機能をつけようと思います。
では、前回のコードを改修してみます。
まず、axSkype1.Client.IsRunningプロパティでSkypeが起動しているかを 確認します。
起動していないなら、axSkype1.Client.Start()メソッドでSkypeを起動します。ここで、axSkype1.Attch()メソッドに引数を追加します。
第一引数はSkypeのプロトコル番号になるのですが、SkypeAPIのバージョンによって変わるようです。 詳しくはの、Skype protocolの項を参考に。
第二引数は、Skypeからの接続応答が返ってくるのを待つかどうかをboolで指定します。
ここで、応答を返すまで待ったほうがいいように思いますが、Skypeが起動していない場合、axSkype1.Client.Start()メソッドが実行されSkypeが起動しますがその後、応答が無いようでエラーとなってしまいました。
ここでは、falseを指定し、とりあえずFormがロードできるようにします。 これで、Skypeが起動していない状態でもアプリケーションが実行できるようになりました。
1 2 3 4 5 6 7 8 |
|
ついでに、Callしたら通話の切断もほしいとこなので、 通話切断ボタンも作ってみます。
通話の切断には、PlaceCall()メソッドの戻り値を取得し、Finish()メソッドで終了出来るようなので まず、PlaceCall()メソッドの戻り値であるCallオブジェクトをインスタンス生成します。
CallインスタンスでPlaceCall()メソッドの戻り値を取得したら 切断ボタンのイベントハンドラで、Finish()してあげれば完了です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
とりあえず、通話と切断が出来るようになりましたが、 まだまだStatusで処理を加えていかないと使い物にならなそうです。。。