Apple Developer Connection
高度な検索
Member Login ログイン | ご入会 ADC連絡先

Technical Q&A QA1062
Limiting the component list in SCRequestImageSettings

Q:SCRequestImageSettingsダイアログで表示するコンポーネントのリストを制限するにはどうしたらよいのでしょうか?コンポーネントを1つ選択しデフォルトに設定することはできましたが、残りのコンポーネントをリストから削除することができません。scListEveryCodecを使ってみましたが、解決していないようでした。

A:『QuickTime API reference』の「Sound Dialog Selectors」のセクションで文書化されていますが、お探しのセレクタはscCompressionListTypeです。

SCSetInfoでこのセレクタを使用します。ユーザに表示するコーデックを示す、OSType型の値の配列を含むハンドルのポインタを渡します。NULLを渡すとリストがリセットされます。リスト1を参照してください。

リスト1:コーデックのリストを制限する

const UInt8 kNumberOfTypes = 4;

Handle    theTypesList = NULL;
OSTypePtr pTypesList = NULL;
SCSpatialSettings theDefaultChoice = { kSorenson3CodecType,
                                       (CodecComponent)kSorenson3CodecType,
                                       32,
                                       codecNormalQuality };

...

// リストを4つ、または任意の数に制限
theTypesList = NewHandle(sizeof(OSType) * kNumberOfTypes);
if (theTypesList) {
   HLock(theTypesList);
   *pTypesList = (OSTypePtr)*theTypesList;

   pTypesList[0] = kH261CodecType;
   pTypesList[1] = kH263CodecType;
   pTypesList[2] = kSorensonCodecType;
   pTypesList[3] = kSorenson3CodecType;

   SCSetInfo(ci, scCompressionListType, &theTypesList);
   DisposeHandle(theTypesList);
}

// デフォルトの選択を設定
SCSetInfo(ci, scSpatialSettingsType, &theDefaultChoice);

...

SCRequestImageSettings(ci);

scListEveryCodecは、使用する必要はなかったということです。これは、あるコーデックの複数のバリエーションを表示するものです。たとえば、独自のJPEGコーデックがある場合は、QuickTimeに組み込まれているコーデックのほかに、その独自のコーデックも表示します。

ドキュメント改訂履歴

日付メモ
2006-01-12編集
2001-07-24新規ドキュメント

掲載日: 2006-01-12




Did this document help you?
Yes: Tell us what works for you.

It’s good, but: Report typos, inaccuracies, and so forth.

It wasn’t helpful: Tell us what would have helped.