現在、Lync通信(Lync SDK 2010)をアプリケーションに組み込むことを試みていますが、の(、)に問題が発生VideoWindows
しCaptureVideoWindow
ましRenderVideoWindow
た。呼び出しに成功した後でも、常にnullになります。接続は確実に確立されます。私たちは話すことができる。私たち自身のビデオは、リモートのLyncクライアントに表示されます。です。からになります。AVModality
VideoChannel
BeginStart
AVModalityState
Connected
VideoChannelState
Connecting
Receive
Send
いつ、どのようにそれらにアクセスしようとするかは重要ではありません。直後BeginStart
、AsyncCallback
のBeginStart
、さまざまな状態の変化への応答、または外部トリガー(ユーザークリックイベント)への応答。メイン/UIスレッドまたはイベント/コールバックスレッドで。2つのビデオウィンドウは常にnullです。
サンプルアプリケーション「%PROGRAMFILES%\ MicrosoftLync \ SDK \ Samples \ AudioVideoConversation」では、すべてが意図したとおりに機能しBeginStart
ます。終了するとすぐに、null以外のビデオウィンドウにアクセスできます。私たちの小さなスタンドアロンのプロトタイププロジェクトでは、それも機能します。しかし、実際のアプリケーションでは、そうではありません。
私たちはすべてを再確認しましたが、この問題の原因となる可能性のあるアイデアが本当に不足しています。
何かアイデア、ヒントはありますか?知っておくべきことはありますか?
更新(2012年7月4日、15:46 CET):
VideoChannelのメンバーを見ると、「Microsoft.Office.Uc」で内部的にCOMExceptionが発生していることがわかります:DLLの読み込みエラー、HRESULT:0x80029C4A(TYPE_E_CANTLOADLIBRARY)。詳細については、添付のスクリーンショットをご覧ください。
このエラーについて調査しましたが、うまくいくものは何も見つかりませんでした。例外の原因となるアイデアはありますか?
更新(2012年7月9日、16:43 CET):
さらにテストを行いました...
私たちのソフトウェアは、1つのメインアプリケーションと、 MEFを介してロードされる多くのプラグインのような「アプリ」で構成されています。ビデオ通話を行う最小限のテストアプリを作成しました。ビデオウィンドウが(期待どおりに)機能しませんでした。しかし、同じコードを使用して、アーキテクチャの外部で別のソリューションを作成した場合、それは機能しました。つまり、それはコードではなく、環境の問題でした。
最初は、MEFが問題である可能性があると考えました。そこで、lyncコードをメインアプリケーションにハッキングし、アプリアーキテクチャ全体を回避しました。まだ動作していません。
次に、システム全体を少しずつ切り取り、最終的に機能するようになりました。間違ったトラックを数回追跡した後、私たちはついに犯人を見つけました... Quartz.NET!
奇妙な理由で、Quartz.dll v.1.0.3.3へのアセンブリ参照が存在するだけで、Quartzコードが1行なくても、ビデオウィンドウが機能しなくなります。信じられないほどですが、100%再現性があります。前述のテストソリューションを使用して、参照を追加する以外に何もしないと、機能しなくなります。
そのようなことがどのように可能であるかについて何か考えはありますか?