1

現在、Lync通信(Lync SDK 2010)をアプリケーションに組み込むことを試みていますが、の(、)に問題が発生VideoWindowsCaptureVideoWindowましRenderVideoWindowた。呼び出しに成功した後でも、常にnullになります。接続は確実に確立されます。私たちは話すことができる。私たち自身のビデオは、リモートのLyncクライアントに表示されます。です。からになります。AVModalityVideoChannelBeginStartAVModalityStateConnectedVideoChannelStateConnectingReceiveSend

いつ、どのようにそれらにアクセスしようとするかは重要ではありません。直後BeginStartAsyncCallbackBeginStart、さまざまな状態の変化への応答、または外部トリガー(ユーザークリックイベント)への応答。メイン/UIスレッドまたはイベント/コールバックスレッドで。2つのビデオウィンドウは常にnullです。

サンプルアプリケーション「%PROGRAMFILES%\ MicrosoftLync \ SDK \ Samples \ AudioVideoConversation」では、すべてが意図したとおりに機能しBeginStartます。終了するとすぐに、null以外のビデオウィンドウにアクセスできます。私たちの小さなスタンドアロンのプロトタイププロジェクトでは、それも機能します。しかし、実際のアプリケーションでは、そうではありません。

私たちはすべてを再確認しましたが、この問題の原因となる可能性のあるアイデアが本当に不足しています。

何かアイデア、ヒントはありますか?知っておくべきことはありますか?

(対応するMSDNフォーラムスレッドへのリンク)

更新(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%再現性があります。前述のテストソリューションを使用して、参照を追加する以外に何もしないと、機能しなくなります。

そのようなことがどのように可能であるかについて何か考えはありますか?

4

1 に答える 1

0

解決しました!すこし。Quartz.NETDLLへの参照が何らかの理由で問題を引き起こしました。更新された質問の詳細。

今のところ、Quartzを使用していたコンポーネントを削除しました。現在は必要ありません。

しかし、私はまだ、単なる参照がそのような問題を引き起こす可能性がある方法をさらに入力することに興味があります。

于 2012-07-09T14:50:02.910 に答える