Skypeとの通信は各OSごとに仕組みが異なるため、それぞれ異なった実装となっています。
- Windows (Windowメッセージを用いて通信)
- C言語 + JNIでWin32を用いて実装
- SWTのOSクラスでWin32を用いて実装
- Linux(DBus、X11メッセージのいずれかを用いて通信)
- C言語 + JNIで実装
- Mac(Skype.frameworkを用いて通信)
- C言語(Carbon) + JNIで実装
実際の案件でSkype4Javaが必要となったのですが、既存のMac版では品質面で問題があったためです。
新バージョンでは、以下の改良を加えています。
- メモリリーク問題の解決
- 初期化と接続が一体になってしまっていて再接続ができない問題の解決
- 長い文字列がやりとりされた場合に途中で切れてしまう問題の解決
- 日本語が文字化けする問題の解決
- 障害時に例外を通知する仕組みの追加
- 効率的なメモリ管理の実現
- isRunning()、getInstalledPath()メソッドの追加
- イベントループをon/offできる機能の追加
- Skype.frameworkをシステムフォルダに実行時にインストールしない形に変更