Part of my application's functionality is that it gets the currently playing iTunes track's album art (using Scripting Bridge). I'm able to do this fine. However, when a track isn't playing, I'd like to get the default album art that both iTunes and Finder have. Is this possible from code? (or if not, how else?)
1 に答える
f iTunes がどこでそれを取得するのかはわかりませんが、Finder がファイルのサムネイルを QuickLook に要求することで、間接的に取得していると思います。
したがって、正しい答えはおそらく同じことをすることです。アルバム アートを手動で取得する代わりに、またはそれが失敗した場合のフォールバックとして、QuickLook サムネイルを取得して表示します。
ただし、手早く汚いものが必要な場合は、QuickLook.framework バンドルから「png」タイプの「Generic Artwork 512」という名前のリソースをいつでも読み取ることができます。Apple が将来的に動き回るのを防ぐために、QuickLook がロードされていることを確認してから、開いているバンドル内のリソースを探すことができますが、新しい OS のリリースごとに注意深く監視する必要があります。
非常によく似た独自の画像を描画することもできます。これは実際には UI コンポーネントではないため、非標準の UI コンポーネントを描画してユーザーを混乱させることはありませんが、理想的には見えません。もちろん、自分のアプリに合法的にコピーできるように、画像がシンプルで一般的であることを期待することもできますが、これは見た目ほどばかげた考えではないことを安心させる優れた弁護士がいる場合に限られます。