C++ のサウンド ライブラリ
サウンドを再生するための適切なライブラリを取得する限り、システム上の Phonon で使用されているライブラリを見つけるだけで十分です。Phonon はかなり大きなプロジェクトであり、OS ごとにメディアの再生やコーデックの使用などに使用するドライバーのセットが異なることは知っています。AudacityとVLCを調べてGoogleをチェックすることをお勧めします。
プラグイン/ライブラリと Qt
PhononをQtで動作させる限り、私はそこで経験があります...
すべての主要な OS で Phonon を使って大量のテストを行ったわけではありませんが、いくつかの異なるバージョンの Windows でテストを行いました。
Phonon のようなプラグインやライブラリを使用しても、Qt アプリケーションの展開は非常に簡単です。しかし、専門用語が少し変なので、最初にそれを理解するのは少し苦痛でした.
私の答えは、静的ではなく、Qt ライブラリへの動的リンクを使用する Windows デスクトップ アプリケーションのコンテキストにあります。
Windows のディレクトリ構造と、dll の検索方法の簡単な説明を次に示します。
Qt アプリケーションのデプロイ
Windows でのダイナミック リンク ライブラリの検索順序
Qt SDK の Windows 上の Mingw には、そのバイナリ用のフォルダーがあり、そのフォルダーには、アプリケーションが実行時に見つける必要がある dll があります (動的リンクを行っている場合)。私は通常、これらの DLL を Qt クリエーターでビルドしたアプリケーション EXE と同じフォルダーに配置し、「作業ディレクトリ」または EXE の実行元のディレクトリも同じディレクトリに保持します。
画像形式やフォノンなど、特定のメディア タイプ用の追加のプラグイン/ライブラリについては、アプリケーションがそれを見つけることができる特定の構造が必要です。
アプリケーション用に非常に具体的なものをいくつか作成し、この呼び出しに関連する関数を使用してそれらを追加できます。
QStringList QCoreApplication::libraryPaths()
一般に、MingW の "plugins" フォルダーにあるディレクトリ構造を模倣して、必要な追加の dll を格納します。
たとえば、システム トレイ アイコンを適切に表示できるようにしたいと考えました。どうやら、アイコンを表示するには正しい画像フォーマット エンジン プラグインが必要です。( qgif4.dll
、qico4.dll
、およびqjpeg4.dll
)
開発中のマシンにプラグインが配置されていたのは次のとおりです。
"C:\QtSDK\Desktop\Qt\4.7.3\mingw\plugins\imageformats"
実行時に見つけられるように配置する場所は次のとおりです。
"C:\path\to\my\EXE\imageformats"
また
".\imageformats" (relative to my working directory of my EXE)
この情報を発見する上で厄介なことの 1 つは、プラグインがメインの Qt ライブラリと同じように失敗しないため、プログラムの一部に到達するまでプラグインが壊れていることに気付かないことです。実際にそれらを使用しようとしています。