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
|