| ログイン | ご入会 |
ADC連絡先
|
|
|
|
Q:使用している Audio Unit のバージョンを知るにはどうすればいいのでしょうか。A:Core Audio は Component Manager を使用して、Audio Unit をシステムの共用リソースとして利用できるようにします。Audio Unit の有効なインスタンスを得たら、 これは、Audio Unit に機能の異なる 2 つのバージョンがあり、Audio Unit を使用する前にどちらのバージョンがインストールされているかを知る場合に役立ちます。 以下のコードは、アップルの 3Dmixer Audio Unit の適切なバージョンがユーザのシステムにインストールされているかどうかを調べます。3Dmixer は、バージョンごとに振る舞いが異なるため、ユーザのシステムに存在するバージョンを知る必要があります。 リスト 1:3D Mixer のバージョンの取得
#define kPreferredMixerVersion 0x20000
#define kMinimumMixerVersion 0x10300
long myGet3DMixerVersion(bool *outPreferred3DMixerExists)
{
ComponentDescription mixerCD = { kAudioUnitType_Mixer, // タイプ
kAudioUnitSubType_3DMixer, // サブタイプ
kAudioUnitManufacturer_Apple, // メーカー
0, // フラグ
0 }; // フラグマスク
long version = 0;
// 最初はこれを false に設定する。0x20000 より大きいバージョンを見つけたときにだけ、
// これを true に設定する。
*outPreferred3DMixerExists = false;
Component mixerC= FindNextComponent(0, &mixerCD);
require(NULL != mixerC, bail);
version = GetComponentVersion((ComponentInstance)mixerC);
// 返されたバージョンが 0x20000 未満の場合は(0x10300 だと本当に古い!)、
// 使用したい 3DMixer のバージョンではないので、
// 何もしないで、false だけを返す。
// バージョンが 0x20000 以上の場合は、使用したい 3DMixer のバージョンなので、
// outPreferred3DMixerExists を true に設定する。
if (version >= kPreferredMixerVersion)
*outPreferred3DMixerExists = true;
bail:
return version;
}
注意:Component と ComponentDescriptions の詳細については、「Component Manager Reference」を参照してください。 ドキュメントの改訂履歴
掲載日: 2005-02-03 |