3

マルチプラットフォーム (Windows、Linux、および Mac) Qt ベースの Phonon C++ アプリケーションを開発していますが、Phonon 自体は、インストールされたコーデックとやり取りするためにバックエンドに依存する API にすぎないことを認識しています。

論理的には、エンド ユーザーには追加のコーデックがインストールされておらず、OS によって提供されるコーデックのみがインストールされていると想定する必要があります。

私の質問は、バックエンドがそれを認識してオーディオファイルを再生できるように、OGG (できれば) または AAC デコーダーをアプリケーションにバンドルすることは可能ですか? 一般的にどのような手順を踏む必要がありますか? また、これに関する詳細情報はどこで確認できますか?

アプリケーション自体はインストールできません。物理メディアから直接実行されます。

4

2 に答える 2

1

C++ のサウンド ライブラリ

サウンドを再生するための適切なライブラリを取得する限り、システム上の Phonon で使用されているライブラリを見つけるだけで十分です。Phonon はかなり大きなプロジェクトであり、OS ごとにメディアの再生やコーデックの使用などに使用するドライバーのセットが異なることは知っています。AudacityVLCを調べて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.dllqico4.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 ライブラリと同じように失敗しないため、プログラムの一部に到達するまでプラグインが壊れていることに気付かないことです。実際にそれらを使用しようとしています。

于 2012-05-15T20:30:34.383 に答える
0

通常、Windows 用のVLC Phonon バックエンドを提供できます。残念ながら、デフォルトの DirectX バックエンドはかなり制限されています。

Linux では、OS の Phonon インストールに適切な Phonon バックエンドが付属していると想定できます。現在人気のある 2 つのバックエンドは GStreamer とVLCです。

于 2012-05-15T20:49:30.690 に答える