Windows における Qt Multimedia
このページでは、Windows で Qt Multimedia を使用する際の注意点について説明します。
COM に関する注意
Qt Multimedia は Windows プラットフォームの COM API を使用します。そのため、Qt Multimedia APIにアクセスするスレッド上でCOMを初期化する必要があります。Qt Multimedia API は必要に応じて自動的に COM を初期化しますが、Qt Multimedia API を呼び出す前に、アプリケーションの起動時にメインスレッドからQGuiApplication インスタンスを初期化することをお勧めします。これにより、Qt Multimedia API がどのスレッドからも呼び出される前に、メインのシングルスレッドアパートメント (main STA) が初期化されます。また、他のすべてのアパートメントがシャットダウンされるまで、メインSTAが初期化されないことも保証されます。
COM を必要とする Qt Multimedia API は、CoInitializeEx(nullptr, COINIT_APARTMENT_THREADED)
を呼び出すことで、シングルスレッド・アパートメントとしてスレッドを初期化します。CoUninitialize
は、スレッドが終了するまで呼び出されません。これはメイン・アプリケーショ ン・スレッドにも当てはまり、CoUninitialize
は静的変数の破棄中に呼び出されます。
本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。