| ログイン | ご入会 |
ADC連絡先
|
|
アイドリングムービーインポータとは?「Movie Data Exchange Components」で述べているように、ムービーインポータコンポーネントはムービー以外のソースから、QuickTime ムービーにデータをインポートします。たとえば、CD オーディオトラックを QuickTime ムービーにインポートすることができます。一般に、これはインポータの アイドリングムービーインポータは、定期的に呼び出されてインポート中にインポータにムービーデータを処理させる特別なルーチン 定期的に呼び出されるため、アイドリングムービーインポータは、データを完全にダウンロードした後ではなく、ムービーデータをダウンロードしながら表示する機会が与えられ、ファストスタートムービーを表示する方法に似ています。 インポータをアイドリングインポータとして指定
リスト 1: canMovieImportWithIdle コンポーネントフラグ canMovieImportWithIdle = 1L << 20 MovieImportIdleここでは、アイドリングインポータの新しい リスト 2: MovieImportIdle
MovieImportIdle
定期的なタスクを処理するムービーデータインポートコンポーネントを呼び出します。
ComponentResult MovieImportIdle ( // IV-2677
MovieImportComponent ci, // IV-2677
long inFlags,
long *outFlags );
ci
ムービーデータインポートコンポーネントのインスタンス。ソフトウェアは OpenComponent
または OpenDefaultComponent からこの参照を取得します。
inFlags
インポートを統括する制御情報を指定するフラグ(下記を参照)。
outFlags
インポートに関するステータス情報を受け取るフィールドを特定するフラグ(下記を参照)。
インポートが完了すると、コンポーネントがこのフィールドに適切なフラグを設定します。
関数の結果: エラーがない場合は noErr を返します。
inFlags 定数
現在は使用されていません。0 に設定されています。
outFlags 定数
movieImportResultComplete
コンポーネントがデータのインポートを完了したかどうかを示します。コンポーネントが
データのインポートを完了した場合は、このフラグを 1 に設定します。
バージョンに関する注意
QuickTime 4 で導入。
プログラミング情報
C インタフェースファイル: QuickTimeComponents.h
使用可能:
非 Carbon CFM: QuickTimeLib 4.0 以降
CarbonLib: CarbonLib 1.0.2 以降
Mac OS X: バージョン 10.0 以降
Windows: qtmlClient.lib 4.0 以降
ムービーの変化をムービーコントローラに通知アイドリングインポータは(通常は リスト 3: ムービーの変化をムービーコントローラに通知
QTAtomContainer container;
Movie theMovie;
// ムービーが変化したことをムービーコントローラに通知する必要があるため、
// kActionMovieChanged ワイヤードアクションを送信する
if (QTNewAtomContainer(&container) == noErr)
{
QTAtom anAction;
OSType whichAction = EndianU32_NtoB(kActionMovieChanged);
OSErr err = QTInsertChild(container, kParentAtomIsContainer,
kAction, 1, 0, 0, NULL, &anAction);
if (err == noErr)
{
err = QTInsertChild(container, anAction, kWhichAction, 1, 0,
sizeof (whichAction), &whichAction, NULL);
}
if (err == noErr)
{
err = MovieExecuteWiredActions(theMovie, 0, container);
}
err = QTDisposeAtomContainer(container);
}
注意: このアクションは、1 秒間に 2 〜 3 回より頻繁に実行しないでください。このアクションを通じてムービーの状態が頻繁にリセットされると、同時再生が不規則になる可能性があります。 以下に、 リスト 4: MovieExecuteWiredActions 関数 MovieExecuteWiredActions ムービーを対象とした、指定されたワイヤードアクションを実行する OSErr MovieExecuteWiredActions ( Movie theMovie, long flags, QTAtomContainer actions ); パラメータの説明 theMovie ムービー識別子。アプリケーションは、NewMovie、NewMovieFromFile、および NewMovieFromHandle などの関数を使ってこの識別子を取得します。 flags 実行するワイヤードアクションの制御情報を指定するフラグ(下記を参照)。 actions アトムコンテナと実行するワイヤードアクション。 関数の結果 関数の結果だけでなく、GetMoviesError と GetMoviesStickyError によって Movie Toolbox が返すエラーにアクセスできます。 「エラーコード」を参照してください。 フラグ定数 movieExecuteWiredActionDontExecute ワイヤードアクションのコールバックプロシージャはすべて、アクションを実行する ことはできませんが、参照することはできます。AddMovieExecuteWiredActionsProc 関数を 使用すると、コールバックをムービーに追加して、ワイヤードアクションを実行できます。 RemoveMovieExecuteWiredActionsProc を使用するとコールバックを削除できます。 バージョンに関する注意 QuickTime 4 で導入。 プログラミング情報 C インタフェースファイル: Movies.h Carbon ステータス: サポート 関連 Java メソッド quicktime.std.movies.Movie.executeWiredActions() MovieImportSetIdleManagerQuickTime 6 には、新しい Idle Manager API がいくつか導入されています。これらについては、「What's New in QuickTime 6」で説明しています。中でも、 MovieImportDataRef/MovieImportFile/MovieImportHandle に関する特別な配慮Movie Importer コンポーネントはもちろん、 上記のルーチンのいずれかをサポートする アイドリングムービーインポータは、 MovieImportDataRefインポートコンポーネントは(一般に)、データ参照(ハンドルなど)をインポートのソースとして受け入れられる場合は、 インポートコンポーネントは、コンポーネントの 以下に、 リスト 5: MovieImportDataRef 関数
MovieImportDataRef
ムービーデータをデータ参照からインポートします。
ComponentResult MovieImportDataRef ( // IV-2677
MovieImportComponent ci, // IV-2677
Handle dataRef, // IV-2683
OSType dataRefType, // IV-2695
Movie theMovie, // IV-2685
Track targetTrack, // IV-2685
Track *usedTrack, // IV-2685
TimeValue atTime, // IV-2697
TimeValue *addedDuration, // IV-2697
long inFlags,
long *outFlags );
ci
ムービーインポートコンポーネントのインスタンス。
ソフトウェアはこの参照を OpenComponent (II-1161) または
OpenDefaultComponent (II-1163) から取得します。
dataRef
インポートするデータへのデータ参照。
dataRefType
dataRef パラメータのデータ参照のタイプ。
theMovie
ムービー識別子。アプリケーションは、この識別子を NewMovie (II-1098)、
NewMovieFromFile (II-1110)、および NewMovieFromHandle (II-1113) などの
関数から取得します。
targetTrack
インポートしたデータを受け取るトラック。このトラック識別子は Movie Toolbox
によって提供され、inFlags パラメータの movieImportMustUseTrack フラグが 1 に
設定されている場合にのみ有効です。
usedTrack
インポートしたデータを受け取るトラックのポインタ。コンポーネントは、
このトラック識別子を Movie Toolbox に返します。単一のトラックを操作する場合、
または新しいトラックを作成する場合にのみ、コンポーネントはこのパラメータを
設定する必要があります。
複数のトラックを変更する場合は、このパラメータによって参照されるフィールドは
無変更のまま残しておきます。
atTime
コンポーネントがインポートしたデータを配置する位置に対応する時間。
この時間値は、ムービーの時間座標システムで表示されます。
addedDuration
コンポーネントがムービーに追加したデータの再生時間のポインタ。
コンポーネントは、この値をムービーの時間座標システムで指定する必要があります。
inFlags
この関数の動作を制御するフラグ(下記を参照)。
outFlags
この関数が戻り値に設定するフラグ(下記を参照)。
関数の結果: 「エラーコード」(IV-2718) を参照してください。
エラーがない場合は noErr を返します。
inFlags 定数
movieImportCreateTrack
インポートしたデータを受け取るために、コンポーネントが新しいトラックを
作成する必要があることを示します。コンポーネントの製造元コードに指定した
メディアタイプに対応するタイプ値のトラックを作成する必要があります。
複数のトラックを作成しない限り、この新しいトラックのトラック識別子は、
usedTrack パラメータによって参照されるフィールドに返す必要があります。
複数のトラックを作成する場合は、outFlags パラメータによって参照される
フィールドの movieImportResultUsedMultipleTracks フラグを必ず 1 に
設定します。movieImportCreateTrack フラグを 1 に設定した場合は、
movieImportMustUseTrack フラグを 0 に設定します。
movieImportMustUseTrack
コンポーネントが既存のトラックを使用する必要があることを示しています。
そのトラックは targetTrack パラメータによって識別されます。
複数のトラックを作成する場合は、outFlags パラメータによって参照される
フィールドの movieImportResultUsedMultipleTracks フラグを必ず 1 に設定します。
movieImportMustUseTrack フラグを 1 に設定した場合は、movieImportCreateTrack
フラグを 0 に設定します。movieImportCreateTrack および movieImportMustUseTrack
フラグを 0 に設定した場合は、ムービーの既存トラックを自由に使用するか、
必要に応じて新しいトラックを作成します。
movieImportInParallel
挿入またはペーストのどちらの操作を実行するかを示します。
このフラグを 0 に設定した場合は、インポートしたデータをターゲットトラックに
挿入する必要があります。このフラグを 1 に設定した場合は、インポートした
データをトラックに追加し、現在トラック上にある空間を上書きする必要があります。
アプリケーションは、ムービーにペーストするデータ量を制御するために
、MovieImportSetDuration (II-982) を使用できます。movieImportMustUseTrack
フラグを 1 に設定した場合は、targetTrack パラメータで指定したトラックを
使用する必要があります。これができない場合は、適切な Movie Toolbox
結果コードを返します。
movieImportWithIdle
アイドリングインポータとしてインポートを実行する必要があることを示しています。
outFlags パラメータの movieImportResultNeedIdles フラグを 1 に設定すると、
MovieImportIdle ルーチンが定期的に呼び出されてムービーデータを処理します。
outFlags 定数
movieImportResultUsedMultipleTracks
コンポーネントがムービーの複数トラックを変更したことを示します。
コンポーネントがインポートしたデータを複数のトラックに配置する場合は、
このフラグを 1 に設定します。この場合、usedTrack パラメータによって
参照されるフィールドを更新する必要はありません。
movieImportResultNeedIdles
コンポーネントがその MovieImportIdle ルーチンを定期的に呼び出して、
ムービーデータを処理することを示しています。
movieImportResultComplete
コンポーネントがムービーデータの処理を完了したことを示します。
バージョンに関する注意
QuickTime 3 以前に導入。
プログラミング情報
C インタフェースファイル: QuickTimeComponents.h
Carbon ステータス: サポート
関連 Java メソッド
quicktime.std.movies.Track.fromMovieImporterDataRef(), quicktime.std.qtcomponents.MovieImporter.fromDataRef()
MovieImportGetLoadStateアイドリングインポータは、ムービーインポータの 非同期のムービーのロードプロセス(および高レベル関数 以下に、 リスト 6: MovieImportGetLoadState
ムービーの非同期ロード状態を返します。
ComponentResult
MovieImportGetLoadState(
MovieImportComponent ci,
long * importerLoadState)
ci
ムービーインポートコンポーネントのインスタンス。
importerLoadState
ムービーの現在のロード状態を受け取るポインタ。
ロードプロセスの値は以下のとおりです:
kMovieLoadStateLoading
インポータがムービーリソースを検索していることを示します。
kMovieLoadStatePlayable
ムービーが完全に形成され、ファストスタートが機能することを示します。
kmovieLoadStatePlaythroughOK
再生が完了する前に、ダウンロードが完了することを示します。
この値は、ムービーが再生可能になってから返されます。
kMovieLoadStateComplete
すべてのメディアデータが利用可能であることを示します。
関数の結果: 「エラーコード」(IV-2718) を参照してください。
エラーがない場合は noErr を返します。
解説
コンポーネントが低速接続での非同期のムービーのロードをサポートしている場合は、
この関数を実装できます。これを使用して、ムービーの現在のロード状態を
レポートします。
バージョンに関する注意
使用可能:
非 Carbon CFM: QuickTimeLib 4.1 以降
CarbonLib: CarbonLib 1.1 以降
Mac OS X: バージョン 10.0 以降
Windows: qtmlClient.lib 4.1 以降
プログラミング情報
C インタフェースファイル: QuickTimeComponents.h
プログラミングの概要情報: "Importing Movie Data" (V-2910)
Carbon ステータス: サポート
アイドリングインポータとムービーコントローラアイドリングインポータで、インポートするムービーに使用するムービーコントローラのタイプに関するヒントを提供したくなることがあります。たとえば、インポータが静止画フォーマットを実装する場合に、ムービーがどのようなコントローラも表示しないことを確実にしたい場合などです。これを実現するには、ムービーの優先ムービーコントローラとして、インタフェースのないコントローラ(None Movie Controller ともいいます)を指定します。インタフェースなしのムービーコントローラは、コントロールバーが表示されず、キーボードイベントが渡されないことを除き、標準のムービーコントローラと同様に動作します。 アプリケーションがムービーコントローラをアタッチする インポータは次のように、 リスト 7: インタフェースなしのムービーコントローラヒントを指定
OSErr err;
OSType noneType = FOUR_CHAR_CODE('none');
/* このムービーにコントローラ「なし」を設定する */
err = SetUserDataItem(GetMovieUserData(theMovie), &noneType, sizeof(noneType),
kUserDataMovieControllerType, 1);
ムービーにムービーコントローラヒントを提供するには、インポータの 要約アイドリングムービーインポータは、定期的に呼び出されてムービーデータを処理する特別なルーチン ドキュメントの改訂履歴
掲載日: 2004-11-12 | ||||||||||